所以。。这就是我要做的。。对于数据文件中的每一行,请检查另一个文件是否包含此字符串。
我尝试了其他帖子中的一些内容,但没有一个是好的。
下面的代码表示,它没有找到任何要查找的字符串,即使它们存在于文件中的某个位置。
def search():
file1= open('/home/example/file1.txt', 'r')
datafile= open('/home/user/datafile.txt', 'r')
for line in datafile:
if line in file1:
print '%s found' % line
else:
print '%s not found' % line
search()
假设第一个文件的内容不是很大,您可以将整个文件读取为字符串,然后使用字符串包含进行检查:
def search():
file1_content = open('/home/example/file1.txt').read()
datafile = open('/home/user/datafile.txt')
for line in datafile:
if line in file1_content:
print '%s found' % line
else:
print '%s not found' % line
请注意,open
的默认模式是'r'
,因此如果您在文本模式下阅读,则不需要传递该参数。
您可以将该文件读取到set
中,然后检查是否包含在第二个文件中。set
通常在检查列表中的包含方面更快。
def search():
file1 = set(open('/home/example/file1.txt'))
datafile= open('/home/user/datafile.txt', 'r')
for line in datafile:
if line in file1:
print '%s found' % line
else:
print '%s not found' % line
您也可以使用设置操作来提取,例如,不在第一个文件中的所有行:
set(open('/home/user/datafile.txt', 'r')) - set(open('/home/example/file1.txt'))