选择输出 yaml 文件的名称



我有一个将数据保存为 yaml 格式的脚本,我获得了大约 5000 个文件。

数据来自 csv 文件,其中一个日期是一个名称,我想从 csv 文件(第 2 列(中的名称命名我的输出 yaml 文件。

这是我所拥有的

import csv
import ruamel.yaml
from csv import reader
from ruamel.yaml import YAML
yaml = ruamel.yaml.YAML()
yaml.preserve_quotes = True
with open('config.yaml') as yml:
doc = yaml.load(yml)
with open('params.csv') as f:
for i, data in enumerate(reader(f)):
doc['components']['star']['init'][0]['values']['logg'] = data[6]
with open(f'config-{i}.yaml', 'w') as out:
yaml.dump(doc, out)

然后输出文件被命名为config-0.yaml, config-1.yaml.......但我希望它们的名称来自我的 csv 文件,该文件的结构如下:

2, ngc6397id000000002jd2456871p6250f000.fits, 6304.19055182, 97.72410249, ....
7, ngc6397id000000007jd2456871p6250f000.fits, 6177.99367633, 27.03483789, ....

我希望有这样的输出:

ngc6397id000000002jd2456871p6250f000.yaml, ngc6397id000000007jd2456871p6250f000.yaml....

但是我找不到命名我的yaml文件的方法,你能帮忙吗?

您可以使用split()来获取第二行值的第一部分:

with open('params.csv') as f:
for i, data in enumerate(reader(f)):
doc['components']['star']['init'][0]['values']['logg'] = data[6]
filename = data[1].split(".")[0]  
with open(f'{filename}.yaml', 'w') as out:
yaml.dump(doc, out)

最新更新