gpt4 book ai didi

python - 在 f.read 上过滤多个字符串

转载 作者:行者123 更新时间:2023-11-30 23:06:24 25 4
gpt4 key购买 nike

我一直在尝试各种方法来过滤 f.read() 上的多个字符串。除了多个单独的循环之外,我似乎找不到一个能按我的预期工作的解决方案,但我拒绝相信没有更优雅的解决方案。

我正在尝试做类似的事情:

if 'string' or 'string2' or 'string3' in f.read():

我尝试了一些变化,例如:

if ('string1', 'string2','string3') in f.read():

if f.read() ('string1', 'string2','string3'):

当然,我还没有找到一种按照我期望的方式工作的方法,并且由于谷歌和文档都未能做到这一点,有人可以启发我吗?

经过Kasramvd的启迪,下面的展示既优雅又实用。特别注意结局线。

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 ,因此您可以将其更改为以下:

with open('file_name') as f:
fi = f.read()
if 'string' in fi or 'string2' in fi or 'string3' in fi:

但是您可以使用内置函数 any 来代替:

with open('file_name') as f:
fi = f.read()
if any(i in fi for i in word_set)

如果您正在处理一个巨大的文件,而不是将整个文件内容加载到内存中,您可以使用函数检查每一行中是否存在字符串:

def my_func(word_set):
with open('file_name') as f:
for line in f:
if any(i in line for i in word_set):
return True
return False

关于python - 在 f.read 上过滤多个字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32690945/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com