我一直在用各种方法过滤f.read()
上的多个字符串。我似乎找不到一个像我期望的那样工作,除了多个独立的循环,但我拒绝相信没有一个更优雅的解决方案。你知道吗
我正在尝试做一些类似于:
if 'string' or 'string2' or 'string3' in f.read():
我尝试了一些变化,例如:
if ('string1', 'string2','string3') in f.read():
if f.read() ('string1', 'string2','string3'):
当然,我还没有找到一个方法,是工作的方式,我希望,由于谷歌和文档都没有,有人能启发我吗?你知道吗
在卡斯拉姆夫的启蒙之后,下面显示了优雅和功能。特别注意最后一行。你知道吗
check_list = ['string1', 'string2', 'string3']
for filename in files:
f = open(root + filename)
fi = f.read()
if any(i in fi for i in check_list):
您的第一个代码很接近,但需要在条件而不是对象之间使用
or
,因此可以将其更改为:但是您可以使用内置函数
any
:如果处理的是一个大文件,而不是将整个文件内容加载到内存中,则可以使用函数检查每行中是否存在字符串:
您可以将它们列在一个列表中,然后进行比较:
相关问题 更多 >
编程相关推荐