使用 headers 将数组保存在一个 csv 文件中

save array in one csv file with headers

我有两个表格列表: 旧参考和新参考,我想修改此功能以将两个列表保存在一个 csv 文件中以获得此

old_references= ["POT-94000-FT-42"]
new_references = ["POT-94000-FT-43"]
headers = ["old_references", "new_references"]

我知道如何在 pandas 中执行此操作,不幸的是我无法在计算机上访问 pandas。 谢谢你的建议。

def exportCsv(liste):
    date = str(datetime.datetime.now().strftime("%d-%m-%Y %H-%M-%S"))
    csv_file = open(os.path.join(sortie, 'increment_reference_{}_'.format(date) + '.csv'), 'w')
    writer = csv.writer(csv_file)
    writer.writerows([liste])

感谢您的建议

csv.writer 中,您应该在开头添加 header 行。除此之外,你看起来不错。

一个干净的替代方案可能是 csv.DictWriter,它更接近我认为的 pandas 功能。

dicts = [
    {
     "old_references": old,
     "new_references": new
    }
    for new, old in zip(new_references, old_references)
]
with open('test.csv', 'w') as f:
    writer = DictWriter(f, list[dicts[0]])
    writer.writeheader()
    writer.writerows(dicts)

不完全清楚您使用的是哪种 liste 对象。我认为在您的情况下值得使用 writerow 方法。

writer.writerow(headers)
writer.writerow([old_references[0], new_references[0]])

还有,别忘了读/写结束后一定要关闭文件

csv_file.close()

为了不每次都明确规定,使用with上下文管理器是有意义的。

date = str(datetime.datetime.now().strftime("%d-%m-%Y %H-%M-%S"))
with open(os.path.join(sortie, 'increment_reference_{}_'.format(date) + '.csv'), 'w') as csv_file:
    writer = csv.writer(csv_file)
    writer.writerow(headers)
    writer.writerow([old_references[0], new_references[0]])

在这种情况下,文件将在上下文管理器结束后自动关闭。