我有两个文件。一个单词列表让我们说a.txt和另一个csv文件,其第二行是单词b.csv。我想检查a.txt中的任何单词是否在b.csv的第二行中,并且只打印那些不匹配的行。 csv文件中共有3行。
到目前为止我所做的是打印那些从单词列表中有单词的行。但我想要其他线路。这是我的代码:reader = csv.reader(open('b.csv', 'rb'))
op = open('a.txt', 'r')
ol = op.readlines()
for row in reader:
for word in ol:
if word==row[1]:
print row[0],row[1],row[2]
现在我该怎么做才能打印出不匹配的线? 谢谢!
答案 0 :(得分:0)
最少侵入性的解决方案(即保持嵌套循环)将是
的内容for row in reader:
match = False
for word in ol:
if word==row[1]:
match = True
break
if not match:
print row[0],row[1],row[2]
或者使用更多Python优点:
for row in reader:
for word in ol:
if word==row[1]:
break
else:
print row[0],row[1],row[2]
else:
位仅在前一个循环正常结束时才会执行(没有达到break
)。
正如thg435所建议的那样,它更简单:
for row in reader:
if row[1] not in ol:
print row[0],row[1],row[2]