在一个文本文件中搜索另一个文本文件的值,然后打印该行

时间:2015-01-12 05:30:45

标签: python python-2.7 python-3.x

我正在寻找一些python代码,它将从textfile1.txt获取值,然后搜索textfile2.txt中的每一行并返回包含textfile1.txt值的任何LINE。举个例子:

textfile1.text contains:
Chad
Flash
Arrow

textfile2.text contains:
Who is awesome? Chad
Fastest human alive? Flash
Looks good in green? Arrow

一旦找到textfile1的内容,我就需要它从textfile2打印上一行代码。设置此特定数据库的方式,textfile1中的值将始终显示在textfile2中行的末尾。我尝试了很多东西,但我无法让它发挥作用。这是我最接近任何结果:

with open("textfile2.txt") as f:
  x = f.read()

with open("textfile1.txt") as f:
  for i in (line.strip() for line in f):
    if i in x:
      print(i, ', found.')

结果如下:

[Chad] , found.
[Flash] , found.
[Arrow] , found.

我尝试翻转textfile1和textfile2,但无济于事。任何帮助将不胜感激!我甚至不确定这是否可以做到,但我想在放弃之前我会问这里。

2 个答案:

答案 0 :(得分:2)

您还需要打印该行:

with open('textfile2.txt') as f:
   words = [line.strip() for line in f]

with open('textfile1.txt') as f:
   for line in f:
      if line.split(' ')[-1].strip() in words:
         print(line)

我将每一行分成一个空格,作为获取所有单词的便宜方式:

>>> s = 'Who is awesome? Chad'
>>> s.split(' ')[-1]
'Chad'

答案 1 :(得分:0)

打印行而不是print (i);

print(line, ', found.')

因为i是这里的单词,所以你想要打印行,而不是单词。