現在、2つのCSVファイルを比較して、file1.csvの最初の列のIPアドレスがfile2.csvの行にあるかどうかを確認しようとしています。 Python 3.6。アドレスはFILE2内にある場合、私は2つのファイルのセットアップ1.ファイルに同一の新しいファイルにコピーし、その行の2番目の列の値を必要とする次のようになります。2つのCSVファイルの一致する列値を使用してデータを結合した新しいファイルを作成する
ファイル1:
XX.XXX.XXX.1,Test1
XX.XXX.XXX.2,Test2
XX.XXX.XXX.3,Test3
XX.XXX.XXX.4,Test4
XX.XXX.XXX.5,Test5
XX.XXX.XXX.6,Test6
XX.XXX.XXX.7,Test7
XX.XXX.XXX.8,Test8
and so on
をファイル2:
XX.XXX.XXX.6, Name6
XX.XXX.XXX.7, Name7
XX.XXX.XXX.8, Name8
私はこのように見えるようにresult.csvファイルが必要になります。私が持っている
XX.XXX.XXX.1,Test1, Not found
XX.XXX.XXX.2,Test2, Not found
XX.XXX.XXX.3,Test3, Not found
XX.XXX.XXX.4,Test4, Not found
XX.XXX.XXX.5,Test5, Not found
XX.XXX.XXX.6,Test6,Name6
XX.XXX.XXX.7,Test7,Name7
XX.XXX.XXX.8,Test8,Name8
コードこれまでのところ、次のようになります。
import csv
f1 = open('file1.csv', 'r')
f2 = open('file2.csv', 'r')
f3 = open('results.csv', 'w')
c1 = csv.reader(f1)
c2 = csv.reader(f2)
c3 = csv.writer(f3)
file2 = list(c2)
for file1_row in c1:
row = 1
found = False
for file2_row in file2:
results_row = file1_row
x = file2_row[3]
if file1_row[1] == file2_row[1]:
results_row.append('Found. Name: ' + x)
found = True
break
row += 1
if not found:
results_row.append('Not found in File1')
c3.writerow(results_row)
f1.close()
f2.close()
f3.close()
このコードでは、値ではない同一の行をチェックしています。 IP列と隣接する列の両方が両方のファイルで等しいことが必要であり、さらにファイルの行1、行2、行3などの両方に一致する必要があるため、何も一致しませんが、他のもので一致を見つけるために、行をインデックスで比較しないでください。
これは完全に機能しました。ありがとうございました! –