【发布时间】:2021-03-08 02:13:46
【问题描述】:
所以我正在编写一个循环多个 .txt 文件并搜索任意数量的预先指定关键字的程序。我很难找到一种方法来通过要搜索的关键字列表。
下面的代码目前返回如下错误:
TypeError: 'in <string>' requires string as left operand, not list
我知道错误是由关键字列表引起的,但我不知道如何输入大量关键字而不出现此错误。
当前代码:
from os import listdir
keywords=['Example', 'Use', 'Of', 'Keywords']
with open("/home/user/folder/project/result.txt", "w") as f:
for filename in listdir("/home/user/folder/project/data"):
with open('/home/user/folder/project/data/' + filename) as currentFile:
text = currentFile.read()
#Error Below
if (keywords in text):
f.write('Keyword found in ' + filename[:-4] + '\n')
else:
f.write('No keyword in ' + filename[:-4] + '\n')
上述代码的第 10 行在注释部分下指出了错误。我不确定为什么我不能调用列表来搜索关键字。任何帮助表示赞赏,谢谢!
【问题讨论】:
-
错误信息的哪一部分你不明白?您不能使用
in运算符来查看list是否在str中。这不是一个定义的操作。比如,您想检查列表中的任何字符串是否在字符串中。
标签: python if-statement directory python-3.8 listdir