📅  最后修改于: 2023-12-03 14:57:55.475000             🧑  作者: Mango
在 Python 中,我们可以使用 subprocess
模块来运行 Shell 脚本,并且使用 yaml
模块将结果写入 YAML 文件。
subprocess
和 yaml
模块:import subprocess
import yaml
subprocess.run()
方法运行 Shell 命令,并将 stdout 保存到变量中:result = subprocess.run(['sh', 'script.sh'], stdout=subprocess.PIPE)
yaml.safe_load()
方法将其转换为 Python 对象:output = result.stdout.decode('utf-8')
data = yaml.safe_load(output)
yaml.dump()
方法将 Python 对象转换为 YAML 格式的字符串:yaml_data = yaml.dump(data)
with open('data.yaml', 'w') as file:
file.write(yaml_data)
假设我们有一个 shell 脚本 script.sh
,它的输出如下:
FOO: bar
BAZ: qux
我们希望将该输出转换为 Python 字典,并将该字典保存为 YAML 文件 data.yaml
。以下是 Python 代码:
import subprocess
import yaml
result = subprocess.run(['sh', 'script.sh'], stdout=subprocess.PIPE)
output = result.stdout.decode('utf-8')
data = yaml.safe_load(output)
yaml_data = yaml.dump(data)
with open('data.yaml', 'w') as file:
file.write(yaml_data)
这将生成以下 YAML 文件:
BAZ: qux
FOO: bar
以上是在 Python 中运行 Shell 脚本并将输出转换为 YAML 文件的方法。您可以根据自己的需求进行更改和调整。