我正在编写一个python脚本来比较2个csv文件:一个包含2列,另一个包含1列。该脚本的目的是整理所有匹配的行。但是每次我尝试运行脚本时,都会在语法或索引上出现错误。您能帮我改正我的脚本吗?
import csv
reader1 = csv.reader(open('interactors.csv', 'r'), delimiter=" ")
row1 = next(reader1)
reader2 = csv.reader(open('proteome_plas.csv', 'r'), delimiter=" ")
row2 = next(reader2)
if (row1[0] == row2[0]) or (row1[0] == row2[1]):
print ("match")
else:
print ("different")
答案 0 :(得分:0)
尝试打印,您将看到:
import csv
reader1 = csv.reader(open('interactors.csv', 'r'), delimiter=" ")
row1 = next(reader1)
print(row1)
reader2 = csv.reader(open('proteome_plas.csv', 'r'), delimiter=" ")
row2 = next(reader2)
print(row2)
输出将是:
['col1', 'col2'] - row1
['col_11'] - row2
您试图访问不存在的row2 [1]元素
尝试:
import csv
reader1 = csv.reader(open('interactors.csv', 'r'), delimiter=" ")
row1 = next(reader1)
print(row1)
reader2 = csv.reader(open('proteome_plas.csv', 'r'), delimiter=" ")
row2 = next(reader2)
print(row2)
# Maybe in your case need to fill row2 to len(row1)
if row1 == row2:
print ("match")
else:
print ("different")
如果要获得任何相等的元素: 使用
max_row = row1 if len(row1) > len(row2) else row2
min_row = row2 if len(row1) > len(row2) else row1
for elem in min_row:
if elem in max_row:
print('match')
break