【发布时间】:2020-03-06 09:52:34
【问题描述】:
我有一个包含 0 和 1 值的“标志”列的 CSV 文件。我的目标是将所有具有 0 值的行移动到另一个 CSV 文件。该脚本将安排为每小时运行一次,并将具有“0”值的行移动到另一个文件。
到目前为止,我编写了以下代码:
with open("path/to/my/input/file.csv", "rt", encoding="utf8") as f:
reader = csv.DictReader(f, delimiter=',')
with open("/path/to/my/output/file.csv", "a+", encoding="utf8") as f_out:
writer = csv.DictWriter(f_out, fieldnames=reader.fieldnames, delimiter=",")
writer.writeheader()
for row in reader:
if row['flag'] == '0':
writer.writerow(row)
借助下面的@Raghvendra 帮助,通过在我的代码中添加“a+”,我可以将行添加到我的 output.csv 文件中。但是,每次脚本运行时,它都会将标题行添加到我的输出文件中。另外,如何防止添加具有匹配 ID 的行?是否可以替换我的 output.csv 文件中 ID 与 input.csv 文件中的 ID 匹配的行,而不是将具有重复 ID 的行添加到 output.csv?
有人可以帮我解决这个问题吗?提前致谢!
输入文件.csv:
id date data1 data2 flag
1 2020-03-01 mydata mydata1 0
2 2020-03-02 mydata mydata 1
3 2020-03-03 mydata mydata1 0
【问题讨论】:
-
您的代码有
delimiter=',',但没有您的示例文件。 -
您的示例文件也没有
'MyColumn',而是flag。如果细节不相符,则不必要地难以提供帮助。 -
ID是整数值吗,如果是,范围是多少?
-
输入文件中的行是否每小时都在变化,还是仅添加行?如果是后者,添加的行是否可以与之前的行具有相同的 ID?
-
您好 Armali,输入文件中的列行会不时更改,但也会添加具有新 ID 的行。 ID 不是整数而是字符串。谢谢!