Сделать набор строк из каждой row[0]
и row[2]
в file1 форматирования, как именно он будет появляться в file2 перебирать не file2 увидеть, если появится строка в наборе:
import csv
with open(file1) as f1, open(file2) as f2:
# skip headers
next(f1),next(f2)
r1 = csv.reader(f1)
# make set of strings matching format of file2
st = set("{},{}".format(row[0], row[2]) for row in r1)
# iterate over every line in file2
# and check if the line appears in the set
for line in f2:
if line.rstrip() in st:
print(line)
File1:
Product invoice,product verification,product completed
foo,1,2
bar,3,4
foo,foo,bar
File2:
Product invoice,product completed
foo,2
bar,4
foobar,foo
bar,bar
Выход:
foo,2
bar,4
Если вы хотите, чтобы данные в списках:
import csv
with open(file1) as f1, open(file2) as f2:
r1 = csv.reader(f1)
r2 = csv.reader(f2)
st = set((row[0], row[2]) for row in r1)
for row in r2:
if tuple(row) in st:
print(row)
['Product invoice', 'product completed']
['foo', '2']
['bar', '4']
Пожалуйста, помогите мне @unutbu – abd
вы можете добавить ввод образца? –
выше пример, у меня есть два файла строк, разделенных запятой, и они находятся в определенном порядке. – abd