Skip to main content
 首页 » 编程设计

python之CSV 文件头扩展 python

2025年05月04日12zhujiabin

我正在寻找一种方法来扩展 CSV 文件的标题。 我在一个字典 (dict1) 和另一个字典 (dict2) 中有文件头,其中一些键是 dict1 的副本,我想扩展文件中的 header 。

有人告诉我有类似 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 

有人知道这是怎么回事吗?

请您参考如下方法:

我建议使用 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'] 与您可能拥有的其他 header ,例如 'T5')。
  • 计算每行包含每个标题值的字典。例如,您的 dict2 需要变成:dict2 = {'V': 'U3', 'T1': 'p', 'T2': 'o', 'T5' : 'z', 'T3': '', 'T4': ''}.
  • 之后,您可以使用上面的代码创建包含输出文件中所有可能字段的 DictWriter,您可以通过将它们作为字典传递来写入每个输出行。