繁体   English   中英

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

[英]Search one text file for values of another and then print that line

我正在寻找一些将从textfile1.txt中获取值的python代码,然后在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,但无济于事。 任何帮助将不胜感激! 我什至不确定这是否可以解决,但我想我会在放弃之前先问一下。

您还需要仅打印行:

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'

打印该行而不是print (i)

print(line, ', found.')

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM