1.shyaml安装
pip install shyaml
2.shyaml使用
2.1 shyaml动作简介
shyaml一共有6个动作,分别为:
get-value:获取值
get-type:获取相应的类型
get-values{,-0}:对序列类型来说,获取值列表
keys{,-0}:返回键列表
values{,-0}:返回值列表
key-values,{,-0}:返回键值对
2.2 shyaml 打印脚本示例
设yaml文件test.yaml内容为:
local_env: /home/zack/Programs/catkin_integrate/devel/setup.bash
launch_cmd: roslaunch fusion_localization localization_offline.launch
program_config: /home/zack/Programs/catkin_integrate/src/fusion_localization/params/localization.yaml
cases:
case001:
data_path: /home/zack/Data/dataset/zhoushan/zs004
port_name: nb_yongzhou
vehicle_num: yz503
case002:
data_path: /home/zack/Data/dataset/zhoushan/zs005
port_name: nb_yongzhou
vehicle_num: yz505
shell脚本为:
#!/bin/bash
echo "cat test.yaml | shyaml get-value local_env"
cat test.yaml | shyaml get-value local_env
echo ""
echo "cat test.yaml | shyaml get-type local_env"
cat test.yaml | shyaml get-type local_env
echo ""
echo "cat test.yaml | shyaml get-values cases.case001"
cat test.yaml | shyaml get-values cases.case001
echo ""
echo "cat test.yaml | shyaml keys cases"
cat test.yaml | shyaml keys cases
echo ""
echo "cat test.yaml | shyaml values cases"
cat test.yaml | shyaml values cases
echo ""
echo "cat test.yaml | shyaml key-values cases"
cat test.yaml | shyaml key-values cases
echo ""
则运行结果为:
cat test.yaml | shyaml get-value local_env
/home/zack/Programs/catkin_integrate/devel/setup.bash
cat test.yaml | shyaml get-type local_env
str
cat test.yaml | shyaml get-values cases.case001
data_path
/home/zack/Data/dataset/zhoushan/zs004
port_name
nb_yongzhou
vehicle_num
yz503
cat test.yaml | shyaml keys cases
case001
case002
cat test.yaml | shyaml values cases
data_path: /home/zack/Data/dataset/zhoushan/zs004
port_name: nb_yongzhou
vehicle_num: yz503
data_path: /home/zack/Data/dataset/zhoushan/zs005
port_name: nb_yongzhou
vehicle_num: yz505
cat test.yaml | shyaml key-values cases
case001
data_path: /home/zack/Data/dataset/zhoushan/zs004
port_name: nb_yongzhou
vehicle_num: yz503
case002
data_path: /home/zack/Data/dataset/zhoushan/zs005
port_name: nb_yongzhou
vehicle_num: yz505
2.3 shyaml 取值示例
设yaml文件test.yaml内容为:
local_env: /home/zack/Programs/catkin_integrate/devel/setup.bash
launch_cmd: roslaunch fusion_localization localization_offline.launch
program_config: /home/zack/Programs/catkin_integrate/src/fusion_localization/params/localization.yaml
cases:
case001:
data_path: /home/zack/Data/dataset/zhoushan/zs004
port_name: nb_yongzhou
vehicle_num: yz503
case002:
data_path: /home/zack/Data/dataset/zhoushan/zs005
port_name: nb_yongzhou
vehicle_num: yz505
shell脚本为:
#!/bin/bash
get_value=`cat test.yaml | shyaml get-value local_env`
echo "get_value:${get_value}"
echo ""
get_type=`cat test.yaml | shyaml get-type local_env`
echo "get_type:${get_type}"
echo ""
get_values=`cat test.yaml | shyaml get-values cases.case001`
echo "get_values:${get_values}"
echo ""
keys=`cat test.yaml | shyaml keys cases`
echo "keys:${keys}"
echo ""
values=`cat test.yaml | shyaml values cases`
echo "values:${values}"
echo ""
key_values=`cat test.yaml | shyaml key-values cases`
echo "key_values:${key_values}"
echo ""
则运行结果为:
get_value:/home/zack/Programs/catkin_integrate/devel/setup.bash
get_type:str
get_values:data_path
/home/zack/Data/dataset/zhoushan/zs004
port_name
nb_yongzhou
vehicle_num
yz503
keys:case001
case002
values:data_path: /home/zack/Data/dataset/zhoushan/zs004
port_name: nb_yongzhou
vehicle_num: yz503
data_path: /home/zack/Data/dataset/zhoushan/zs005
port_name: nb_yongzhou
vehicle_num: yz505
key_values:case001
data_path: /home/zack/Data/dataset/zhoushan/zs004
port_name: nb_yongzhou
vehicle_num: yz503
case002
data_path: /home/zack/Data/dataset/zhoushan/zs005
port_name: nb_yongzhou
vehicle_num: yz505