私は2つのcsvファイル(fileAとfileB)を比較しようとしていますが、fileBに見つからないfileAの行はすべて削除します。私は3番目のファイルを作成せずにこれを行うことができるようにしたい。私はCSVライターモジュールを使ってこれを行うことができると思ったが、今は自分自身を推測している。Pythonで行を削除するには
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)
現在、私は、ファイルBからの私の比較データを記録するために、次のコードを使用してい
['sqlite'](http://docs.python.org/2/library/sqlite3.html)は、フラットファイルベースのデータベースで、そのドライバは現代版のPythonに含まれています。あなたがしようとしていることを考えれば、より良い選択肢かもしれません。 –
愚かな質問を申し訳ありませんが、これはファイルBの正確なコピーを作成するでしょうか? –