道歉是违反规则的。我尝试创建一个简单的Python脚本,在文本文件中搜索列表中的任何字符串。
KeyWord =['word', 'word1', 'word3']
if x in Keyword in open('Textfile.txt').read():
print('True')
当我运行代码时,我收到“名称错误:名称'x'未定义”,虽然我不确定为什么?
答案 0 :(得分:1)
x
未定义。你忘了了定义它的循环。这将创建一个生成器,因此您需要使用any
:
KeyWord =['word', 'word1', 'word3']
if any(x in open('Textfile.txt').read() for x in KeyWord):
print('True')
这样可行,但它会多次打开并读取文件,因此您可能需要
KeyWord = ['word', 'word1', 'word3']
file_content = open('test.txt').read()
if any(x in file_content for x in KeyWord):
print('True')
这也有效,但您最好使用with
:
KeyWord = ['word', 'word1', 'word3']
with open('test.txt') as f:
file_content = f.read()
if any(x in file_content for x in KeyWord):
print('True')
一旦在文件中找到列表中的第一个单词,上述所有解决方案都将停止。如果不是这样,那么
KeyWord = ['word', 'word1', 'word3']
with open('test.txt') as f:
file_content = f.read()
for x in KeyWord:
if x in file_content:
print('True')
答案 1 :(得分:1)
您可以使用for循环执行此操作,如下所示。您的代码存在的问题是它不知道x
是什么。您可以在循环内部定义它,使x
等于每个循环运行的KeyWord
列表中的值。
KeyWord =['word', 'word1', 'word3']
with open('Textfile.txt', 'r') as f:
read_data = f.read()
for x in KeyWord:
if x in read_data:
print('True')