yaml修改前:
name: ikun
age: 18
hobbies:
"0": [c]
"1": [t]
"2": [r]
"3": [l]
'4': [nothing]
yaml修改后:
name: ikun
age: 18
hobbies:
'0': [c]
'1': [t]
'2': [r]
'3': [l]
'4': [c, t, r, l]
code:
from ruamel import yaml as ryaml
from pathlib import Path
class YamlLoader:
def __init__(self, file, new_flag=True):
self.file = file
self.yaml_dir = Path(file).resolve().parent / (Path(file).stem + "_changed" + Path(file).suffix) if new_flag else file
def file_load(self):
with open(self.file, 'r', encoding='utf-8') as f:
data = f.read()
return ryaml.load(data, Loader=ryaml.RoundTripLoader)
def file_dump(self, data):
with open(self.yaml_dir, 'w', encoding='utf-8') as f:
ryaml.dump(data, f, Dumper=ryaml.RoundTripDumper, allow_unicode=True, default_flow_style=True)
if __name__ == "__main__":
camera_config = r'./ori.yaml'
yml = YamlLoader(camera_config, True)
yaml_info = yml.file_load()
yaml_info["hobbies"]["4"] = ['c', 't', 'r', 'l']
yml.file_dump(yaml_info)
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32