到目前为止,我一直在尝试将特定的行(包括头)从原始的csv文件复制到新的文件中。然而,一旦我运行我的代码,它复制了一堆乱七八糟的东西,创建了一个巨大的文档。在
这是我迄今为止尝试过的一个选项,似乎是最接近解决方案的:
import csv
with open('D:/test.csv', 'r') as f,open('D:/out.csv', 'w') as f_out:
reader = csv.DictReader(f)
writer = csv.writer(f_out)
for row in reader:
if row["ICLEVEL"] == "1":
writer.writerow(row)
问题是我必须只复制那些“ICLEVEL”(头名称)的值等于“1”的行。在
注:测试.csv是一个非常大的文件,我不能硬编码所有的头名称在编写器。在
任何关于Python做这件事的演示都是非常感谢的。谢谢。在
你的
row
是一本字典。CSV编写器无法编写词典。从字典中选择值并只写它们:我会用熊猫,而不是CSV阅读器:
代码更紧凑。在
writer.writerow
需要一个序列(元组或列表)。您可以使用DictWriter
,它需要一个dict
。在相关问题 更多 >
编程相关推荐