YAML配置檔案讀取

2021-09-10 07:47:00 字數 3437 閱讀 2489

yaml格式的檔案拓展名包括:.yml.yaml,兩個都表示yaml檔案;

xml格式的檔案拓展名為:.xml

基本語法規則

資料結構:

string

:'foo'

integer

:1234

float

:1234.5

boolean

:true

list:[

1.0, mixed list]

dictionary

:

引用

錨點&和別名*,可以用來引用。

defaults:

&defaults

adapter: postgres

host: localhost

development:

<<

:*defaults

test:

<<

:*defaults

等同於下面的**。

defaults:

adapter: postgres

host: localhost

development:

adapter: postgres

host: localhost

test:

adapter: postgres

host: localhost

```&用來建立錨點(defaults),<<表示合併到當前資料,*`用來引用錨點。

#read_yaml.yaml

first_name: 111

second_name: 222

third_name: 333

basic_name:

test_name: 444

selected_name:

- 666

- 777

sudo pip install pyyaml

sudo pip3 install pyyaml

#read_yaml.py

# -*- coding:utf-8 -*-

import os

import yaml

current_path = os.path.abspath(os.path.dirname(__file__)

)print

(current_path)

print

(current_path +

'/../test_dir'

)with

open

(current_path +

'/../test_dir/'

+'read_yaml.yaml'

,'r'

)as f:

temp = yaml.load(f.read())

print

(temp)

print

(temp[

'basic_name'])

print

(temp[

'basic_name'][

'test_name'])

print

(temp[

'basic_name'][

'selected_name'][

0])

使用yaml-cpp讀取和寫入yaml檔案

安裝yaml-cpp:

git clone
編譯 yaml-cpp:

cd yaml-cpp # 進入轉殖的資料夾

mkdir build

cd build

cmake ..

make

sudo

make

install

使用yaml-cpp:

​ 修改cmakelists.txt

cmake_minimum_required(version 3.5)

project(001)

set(cmake_c_compiler g++)

add_compile_options(-std=c++11)

link_directories(/home/windistance/yaml-cpp/build)

include_directories(/home/windistance/yaml-cpp/include/yaml-cpp)

add_executable($ src/main.cpp)

target_link_libraries($ yaml-cpp)

​ 新增標頭檔案

#include "yaml-cpp/yaml.h"
示例:

int main(int argc, char** ar**)

"; }

fs << "]";

fs.release();

return 0;

}

%yaml:1.0

framecount:5

calibrationdate

:"fri jun 17 14:09:29 2011\n"

cameramatrix

:!!opencv-matrix

rows:3

cols:3

dt: d

data:[

1000.,0.

,320.,0.

,1000.

,240.,0.

,0.,1.

]distcoeffs

:!!opencv-matrix

rows:5

cols:1

dt: d

data:[

1.0000000000000001e-01

,1.0000000000000000e-02

,-1.0000000000000000e-03,0.

,0.

]features:-

--

.launc**件

>
nodehandle_.param("basic_name/test_name", name, 1);

python讀取配置檔案yaml

yaml 一種非標記語言,可以簡單表達清單 列表等資料形態,檔案字尾為 yml 1.大小寫敏感 2.使用縮排表示層級關係 3.縮排不允許使用tab,只允許空格,但是對空格數不要求 4.表示注釋 key value 和value之間應該有空格 字典 name test age 12 列表 1,2 3 ...

yaml做配置檔案

yaml是 yaml ain t a markup language yaml不是一種置標語言 的遞迴縮寫。可以做多種用途 指令碼語言,序列化,配置檔案 我們常見的是config.yaml做配置檔案 可以看出,同乙個縮排屬於同乙個級別的,可以理解為和window的資料夾一樣,當前面有 就是乙個陣列。...

YAML配置檔案管理資源

定義配置時,指定最新穩定版api api版本可以通過命令kubectl api versions檢視到 配置檔案應該儲存在集群之外的版本控制倉庫中。如果需要,可以快速回滾配置 重新建立和恢復 例如git。應該使用yaml格式編寫配置檔案,而不是json。儘管這些格式都可以使用,但yaml對使用者更加...