📜  python 用新列表替换 yaml 文件中的 ips 列表 - Python (1)

📅  最后修改于: 2023-12-03 14:46:17.342000             🧑  作者: Mango

Python 用新列表替换 yaml 文件中的 ips 列表

在 Python 中,有时候我们需要修改 yaml 文件中的数据。比如说,替换 ips 列表中的数据。下面就是如何以 Python 读取、修改和写入 yaml 文件的一个例子。

前置要求
  1. Python 环境(推荐 Python3+)
  2. pyyaml 库

如果没有安装 pyyaml 库,可以使用以下命令进行安装:

pip install pyyaml
读取 yaml 文件

读取 yaml 文件可以使用 yaml.load() 方法将 yaml 文件转换为 Python 对象。

import yaml

with open('sample.yaml', 'r') as f:
    data = yaml.load(f, Loader=yaml.FullLoader)

print(data)

其中,sample.yaml 是 yaml 文件路径,yaml.load() 方法将 yaml 文件转换为 Python 对象并储存在变量 data 中。

修改数据

修改 yaml 文件中的数据,需要在 Python 对象中进行修改。以下代码可以将 ips 列表中的数据替换为新的列表。

new_ips = ['192.168.1.2', '192.168.1.3', '192.168.1.4']
data['ips'] = new_ips

print(data)
写入 yaml 文件

修改完成后,需要将修改后的 Python 对象写入 yaml 文件。下面是写入 yaml 文件的代码:

with open('sample.yaml', 'w') as f:
    yaml.dump(data, f)

其中,sample.yaml 是 yaml 文件路径,yaml.dump() 方法将 Python 对象转换为 yaml 格式,然后写入文件。

完整代码

下面是将修改数据和写入文件的代码片段整合到一起的完整代码:

import yaml

# 读取 yaml 文件
with open('sample.yaml', 'r') as f:
    data = yaml.load(f, Loader=yaml.FullLoader)

# 替换 ips 列表
new_ips = ['192.168.1.2', '192.168.1.3', '192.168.1.4']
data['ips'] = new_ips

# 写入 yaml 文件
with open('sample.yaml', 'w') as f:
    yaml.dump(data, f)

以上代码可以读取 sample.yaml,将 ips 列表替换为 ['192.168.1.2', '192.168.1.3', '192.168.1.4'],再将修改后的数据写入原文件。

结论

Python 通过 pyyaml 库读取、修改和写入 yaml 文件非常简单。如果你需要在项目中使用 yaml 文件、修改 yaml 文件等操作,可以参考以上方法和代码片段。