【发布时间】:2017-03-15 11:01:23
【问题描述】:
我正在尝试将行从一个 CSV 复制到另一个,并在从第一个文件复制后删除行。
请查看代码,它仅适用于将特定行从一个 CSV 文件复制到另一个文件,但不会从文件 1 中删除行。
import csv
import os
File1 = 'in.csv'
File2 = 'out.csv'
with open(File1, "r") as r, open(File2, "a") as w:
reader = csv.reader(r, lineterminator = "\n")
writer = csv.writer(w, lineterminator = "\n")
for counter,row in enumerate(reader):
if counter<0: continue
if counter>50:break
writer.writerow(row)
with open(File1, "w") as r:
reader = csv.writer(r, lineterminator = "\n")
for counter,row in enumerate(reader):
if counter<0: continue
if counter>50:break
reader.writerow(row)
请告诉我在将行复制到文件 2 后如何工作,然后从文件 1 中删除这些行。
这是错误:
for counter,row in enumerate(reader):
TypeError: '_csv.writer' object is not iterable
【问题讨论】:
-
但这不起作用你能解决这个问题吗
-
请提及您在运行此代码时遇到的错误?还提供您正在处理的示例数据。似乎主要是描述中的数据问题
-
@Sarjan:什么不起作用?您是否阅读了上述链接问题的答案?
You can't remove rows from a file but you can rewrite it with only the ones you want. -
解决方案在那里。阅读@ChankeyPathak 所说的; 您必须重写文件而不删除要删除的行