同じようにフォーマットされた 2 つの csv ファイルがあります (2 列のデータ):
Name Link
Name Link
Name Link
Name Link
それらの唯一の違いは、これら 2 つの列内のデータです (名前とリンクが異なります)。両方の csv ファイルに表示される名前とリンクを見つけて、新しい csv ファイルに書き込みたいと思います。これまでのところ、私は試しました:
import csv
f1 = file('/path/to/f1.csv', 'r')
f2 = file('/path/to/f2.csv', 'r')
f3 = file('/path/to/f3.csv', 'w')
c1 = csv.reader(f1)
c2 = csv.reader(f2)
c3 = csv.writer(f3)
masterlist = [row for row in c2]
for hosts_row in c1:
row = 1
found = False
for master_row in masterlist:
results_row = hosts_row
if hosts_row[3] == master_row[1]:
results_row.append('FOUND in master list (row ' + str(row) + ')')
found = True
break
row = row + 1
if not found:
results_row.append('NOT FOUND in master list')
c3.writerow(results_row)
f1.close()
f2.close()
f3.close()
これは同様の質問への回答に基づいていますが、その場合の csv ファイルの形式が異なることを認識しています。そして、私はこのエラーを受け取ります:
masterlist = [row for row in c2]
_csv.Error: new-line character seen in unquoted field - do you need to open the file in universal-newline mode?
csv ファイルの形式に合わせて上記のコードを調整するにはどうすればよいですか。または、これを行うより良い方法はありますか?私はPythonを使い始めたばかりで、2つのファイルのデータを比較するという概念をまだ完全に理解していないと思うので、どんな助けでも大歓迎です。