curPath = os.path.dirname(os.path.realpath(__file__))
# 获取yaml文件路径
yamlPath = os.path.join(curPath, "in.yaml")
def get_dict():
d = {} #in.yaml文件里面存了字典
f = open(yamlPath, 'r', encoding='utf-8')
d = yaml.load(f.read(), Loader=yaml.FullLoader)
f.close()
return d
print(get_dict())
2.增加操作
import yaml
import os
#in.yaml文件与当前的文件在同一个目录下
# 获取当前脚本所在文件夹路径
curPath = os.path.dirname(os.path.realpath(__file__))
# 获取yaml文件路径
yamlPath = os.path.join(curPath, "in.yaml")
def get_dict():
d = {} #in.yaml文件里面存了字典
f = open(yamlPath, 'r', encoding='utf-8')
d = yaml.load(f.read(), Loader=yaml.FullLoader)
f.close()
return d
def add_dict(a,b):
data = {a:b}
file = open(yamlPath, 'a', encoding='utf-8')
yaml.dump(data, file)
file.close()
add_dict('a','666')
print(get_dict())
3.删除操作
import yaml
import os
#in.yaml文件与当前的文件在同一个目录下
# 获取当前脚本所在文件夹路径
curPath = os.path.dirname(os.path.realpath(__file__))
# 获取yaml文件路径
yamlPath = os.path.join(curPath, "in.yaml")
def get_dict():
d = {} #in.yaml文件里面存了字典
f = open(yamlPath, 'r', encoding='utf-8')
d = yaml.load(f.read(), Loader=yaml.FullLoader)
f.close()
return d
def delete_data(data):
d = {}
with open('in.yaml','r+') as f:
dict_temp = yaml.load(f,Loader=yaml.FullLoader)
print(dict_temp)
print(type(dict_temp))
dict_temp.pop(data)
with open('in.yaml', 'w') as f:
yaml.dump(dict_temp,f) #将Python中的字典或者列表转化为yaml格式的数据
f.close()
return d
delete_data('b')
print(get_dict())
这里的删除实际上是将yaml文件内容读取出来,删除字典里面的数据再写入in.yaml文件中。输出
4.修改操作
import yaml
import os
#in.yaml文件与当前的文件在同一个目录下
# 获取当前脚本所在文件夹路径
curPath = os.path.dirname(os.path.realpath(__file__))
# 获取yaml文件路径
yamlPath = os.path.join(curPath, "in.yaml")
def get_dict():
d = {} #in.yaml文件里面存了字典
f = open(yamlPath, 'r', encoding='utf-8')
d = yaml.load(f.read(), Loader=yaml.FullLoader)
f.close()
return d
def change_data(key,data):
with open('in.yaml') as f:
dict_temp = yaml.load(f,Loader=yaml.FullLoader)
dict_temp[key] = data
with open('in.yaml', 'w') as f:
yaml.dump(dict_temp,f) #将Python中的字典或者列表转化为yaml格式的数据
f.close()
change_data('b','D')
print(get_dict())
感觉需要了解更多的可以去下面的网址去查看自己需要的信息
pyyaml官方教程
目录1.读取操作2.增加操作3.删除操作4.修改操作in.yaml文件的初始内容如下,以下操作都是对初始内容进行操作1.读取操作import yamlimport os#in.yaml文件与当前的文件在同一个目录下# 获取当前脚本所在文件夹路径curPath = os.path.dirname(os.path.realpath(__file__))# 获取yaml文件路径yamlPath = os.path.join(curPath, "in.yaml")
参考:https://answers.ros.org/question/197304/creatingparsing-a-dictionary-of-dictionary-params/
官网:http://wiki.ros.org/roslaunch/XML/rosparam
官网解读:
Theloadcommand is consideredadditive: if you declare a dictionary or namespace of parameters, those para...
对象:键值对的集合,又称为映射(mapping)/哈希(hashes)/
字典
(dictionary)
数组:一组按次序排列的值,又称为序列(sequence)/列表(list),数组对象“-” 后面也要加一个空格
纯量(scalars):单个
1
yaml
文件
语法
yaml
的意思是:Yet Another Markup Language(仍是一种标记语言),几个月后几个作者又
YAML
Ain't Markup Language,不同于其他标记语言,只想表示
数据
。
YAML
的语法和其他高级语言类似,并且可以简单表达清单,散列表,标量等
数据
形态。它使用空白符号缩进和大量依赖外观的特色,特...
# 读取
YAML
文件
with open('data.
yaml
', 'r') as f:
data =
yaml
.load(f, Loader=
yaml
.FullLoader)
# 打印读取的
数据
print(data)
写入
YAML
文件
:
```
python
import
yaml
# 要写入的
数据
data = {
'name': 'John',
'age': 30,
'city': 'New York'
# 写入
YAML
文件
with open('data.
yaml
', 'w') as f:
yaml
.dump(data, f)
注意:在Py
YAML
5.1版本及以上,
yaml
.load()默认安全模式为True,会报出警告。为了避免警告,可以使用
yaml
.SafeLoader代替
yaml
.Loader。