Python 2.7中如何将列表元素设为CSV文件的独立表头?
解决CSV表头添加列表元素的问题
你目前的问题出在把整个unique_fields列表作为单个单元格传入了writerow,所以最后一列会显示成类似['buffcount', 'size', ...]的字符串,而不是每个元素单独成为一列。
要实现你想要的效果,只需要把固定表头和unique_fields列表拼接成一个完整的表头列表即可,这样csv.writer就会把每个元素都解析成独立的表头列:
import csv # 别忘了导入csv模块,原代码里没写,大概率是漏了 unique_fields = ['buffcount', 'size', 'ctype', 'atype', 'idiameter', 'row', 'pstatus', 'perminal'] # Python3 推荐用w模式+newline=''避免生成多余空行,指定编码更稳妥 with open(r"C:\Temp\test2\new.csv", 'w', newline='', encoding='utf-8') as outfile: f = csv.writer(outfile, delimiter=',', quotechar='"') # 拼接固定表头和动态字段列表,生成完整表头 full_header = ["FDomain", "CValue", "Descr"] + unique_fields f.writerow(full_header)
关键细节说明:
["FDomain", "CValue", "Descr"] + unique_fields会把两个列表合并成一个新列表,最终结果是["FDomain", "CValue", "Descr", "buffcount", "size", ...],每个元素对应CSV的一列。- 如果你用的是Python2,保持
'wb'模式也可以,但核心的列表拼接逻辑完全一致。
这样生成的CSV表头就会是你期望的FDomain | CValue | Descr | buffcount | size | ...(每个元素单独一列)的格式啦。
内容的提问来源于stack exchange,提问作者David Bailey
相关产品推荐
相关产品推荐

