我正在寻找扩展CSV文件标头的方法。
我在字典(dict1
)和另一个字典(dict2
)中有文件头,其中一些字符是dict1
的重复字符,并且希望扩展文件中的标题。
我被告知有类似csv.header.extend()
的内容,但不确定它是如何工作的,无法找到示例。
我的CSV看起来像:
V,T1,T2,T3,T4
U1,a,b,c,d
U2,q,w,e,r
让我们说dict2
是
dict2 = {'V': 'U3', 'T1': 'p', 'T2': 'o', 'T5': 'z'}
CSV会像这样出现:
V,T1,T2,T3,T4,T5
U1,a,b,c,d,
U2,q,w,e,r,
U3,p,o,,,z
任何人都知道这会起作用吗?
答案 0 :(得分:1)
我建议使用csv.DictWriter
使用所有字段:
fieldnames = ['V','T1','T2','T3','T4','T5']
with open(...) as f:
writer = csv.DictWriter(f, fieldnames=fieldnames)
然后,您可以通过传递包含该行值的字典来编写每一行:
for my_dict in my_dicts:
writer.writerow(my_dict)
所以要采取的步骤是:
['V','T1','T2','T3','T4']
与您可能拥有的其他标题合并,例如'T5'
)。dict2
需要成为:dict2 = {'V': 'U3', 'T1': 'p', 'T2': 'o', 'T5': 'z', 'T3': '', 'T4': ''}
。DictWriter
,并且可以通过将它们作为字典传递来编写每个输出行。