2025-05-27 15:46:31 +08:00

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)