我试图比较两个csv文件(fileA和fileB),并从fileA中删除fileA中找不到的任何行。我希望能够在不创建第三个文件的情况下执行此操作。我以为我可以使用csv编写器模块来做到这一点,但现在我第二次猜测自己。如何在python中删除行CSV
目前,我使用下面的代码从文件B记录我的比较数据:
removal_list = set()
with open('fileB', 'rb') as file_b:
reader1 = csv.reader(file_b)
next(reader1)
for row in reader1:
removal_list.add((row[0], row[2]))
这是我坚持,不知道如何删除行:
with open('fileA', 'ab') as file_a:
with open('fileB', 'rb') as file_b:
writer = csv.writer(file_a)
reader2 = csv.reader(file_b)
next(reader2)
for row in reader2:
if (row[0], row[2]) not in removal_list:
# If row was not present in file B, Delete it from file A.
#stuck here: writer.<HowDoIRemoveRow>(row)
['sqlite'](http://docs.python.org/2/library/sqlite3.html)是一个基于平面文件的数据库,其驱动程序包含在现代版本的Python中。考虑到你正在尝试做什么,这可能是一个更好的选择。 – 2013-04-29 05:14:49
对不起这个愚蠢的问题,但这会创建一个fileB的精确副本,不是吗? – 2016-07-05 14:40:14