74 lines
1.9 KiB
Python
Executable File
74 lines
1.9 KiB
Python
Executable File
"""
|
|
该模块提供了对 YAML 文件的读写操作。
|
|
"""
|
|
|
|
import yaml
|
|
|
|
def read_yaml(file_path):
|
|
"""
|
|
读取 YAML 文件并返回 Python 对象。
|
|
|
|
param file_path: str, YAML 文件路径
|
|
|
|
return: data (dict), YAML 文件内容转换的 Python 对象
|
|
"""
|
|
with open(file_path, 'r', encoding='utf-8') as file:
|
|
data = yaml.safe_load(file)
|
|
return data
|
|
|
|
def write_yaml(data, file_path):
|
|
"""
|
|
将 Python 对象写入 YAML 文件。
|
|
|
|
param data: dict, 要写入 YAML 文件的 Python 对象
|
|
param file_path: str, 目标 YAML 文件路径
|
|
"""
|
|
with open(file_path, 'w', encoding='utf-8') as file:
|
|
yaml.safe_dump(data, file)
|
|
|
|
def update_yaml(file_path, key, value):
|
|
"""
|
|
更新 YAML 文件中的指定键值对。
|
|
|
|
param file_path: str, YAML 文件路径
|
|
param key: str, 要更新的键
|
|
param value: 要更新的值
|
|
"""
|
|
data = read_yaml(file_path)
|
|
data[key] = value
|
|
write_yaml(data, file_path)
|
|
|
|
def delete_key_yaml(file_path, key):
|
|
"""
|
|
删除 YAML 文件中的指定键。
|
|
|
|
param file_path: str, YAML 文件路径
|
|
param key: str, 要删除的键
|
|
"""
|
|
data = read_yaml(file_path)
|
|
if key in data:
|
|
del data[key]
|
|
write_yaml(data, file_path)
|
|
|
|
if __name__ == '__main__':
|
|
|
|
# 示例使用
|
|
yaml_file = 'example.yaml'
|
|
data_to_write = {
|
|
'name': 'Sun Yat-sen University',
|
|
'location': 'Guangzhou',
|
|
'founded': 1924
|
|
}
|
|
|
|
write_yaml(data_to_write, yaml_file) # 写入 YAML 文件
|
|
|
|
read_data = read_yaml(yaml_file) # 读取 YAML 文件
|
|
print(read_data)
|
|
|
|
update_yaml(yaml_file, 'founded', 1910) # 更新键值对
|
|
read_data = read_yaml(yaml_file)
|
|
print(read_data)
|
|
delete_key_yaml(yaml_file, 'location') # 删除键
|
|
read_data = read_yaml(yaml_file)
|
|
print(read_data)
|