gpt4 book ai didi

python - 使用 DictWriter 更改列标题

转载 作者:行者123 更新时间:2023-12-04 12:25:02 24 4
gpt4 key购买 nike

我正在编写一些代码以从输入 .txt 文件生成两个新的 CSV 文件。 .txt 文件有 40 列数据,我正在编写两个新的 csv 文件,每个文件只从 .txt 文件中获取 2 列。

我的代码运行良好,几乎完全符合我的需要。最后一步是重命名两个新 csv 输出中的原始标题。

这是我的代码:

import csv

QATargetHeaders = ['FNAME','LNAME']
FinalTargetHeaders = ['PROJECT_CODE','PHONE_NUMBER']

with open('TEST.txt','r') as csv_input, open('Test_QA2.csv','w') as csv_output:
reader = csv.DictReader(csv_input, delimiter='^')
writer = csv.DictWriter(csv_output, fieldnames=QATargetHeaders, extrasaction='ignore')
writer.writeheader()
for line in reader:
writer.writerow(line)
with open('TEST.txt','r') as csv_input, open('Test_FINAL.csv','w') as csv_output:
reader = csv.DictReader(csv_input, delimiter='^')
writer = csv.DictWriter(csv_output, fieldnames=FinalTargetHeaders, extrasaction='ignore')
writer.writeheader()
for line in reader:
writer.writerow(line)

对于 TEST_QA2.csv,我需要更改标题:
FNAME = First Name
LNAME = Last Name

对于 TEST_FINAL.csv,我需要更改标题:
PROJECT_CODE = PROJECT ID
PHONE_NUMBER = DEVICE1

有人可以帮我弄清楚如何在这里重写标题吗? TargetHeaders 必须定义为 .txt 文件中的确切列名,以便我的作者知道要复制的内容。在此先感谢您

最佳答案

而不是 writeheader , 使用 writerow用字典将旧标题映射到新标题。然后您可以像以前一样编写其他行。

QATargetHeaders = {'FNAME': 'First Name','LNAME': 'Last Name'}
FinalTargetHeaders = {'PROJECT_CODE': 'PROJECT ID','PHONE_NUMBER': 'DEVICE1'}
...
writer = csv.DictWriter(csv_output, fieldnames=QATargetHeaders, extrasaction='ignore')
writer.writerow(QATargetHeaders) # instead of writeheader
for line in reader:
writer.writerow(line)
...

(从 Python 3.7 dictionaries preserve order 开始,列将以正确的顺序出现。如果使用早期版本的 Python,您将需要创建一个单独的字段名称列表,或使用 OrderedDict ,以确保列以正确的顺序出现在 CSV 文件中。)

关于python - 使用 DictWriter 更改列标题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59291949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com