我正在尝试搜索文件中的特定字词并将其打印出来。
这是我的代码:
import os # os directory library
# Searching for a keyword Name and returning the name if found
def scanName(file):
name = 'Fake'
with open('file.txt', 'r') as file1:
for line in file1:
for word in line.split():
temp = word
if temp.lower() == 'name'.lower():
name = word[word.index("name") + 1]
return name
# To find all files ending with txt in a folder
for file in os.listdir("C:\Users\Vadim\Desktop\Python"):
if file.endswith(".txt"):
print scanName( file )
现在该函数将名称返回为false,尽管我的txt文件中有名称。
两个带有字符串“name:some name”的txt文件
我该如何解决?
谢谢!
答案 0 :(得分:1)
将'name'.lower()
替换为name.lower()
,因为您现在正在检查字符串 name
,而不是变量 {{ 1}}。
答案 1 :(得分:0)
可能更容易不逐行逐字检查,而只是通过if (word) in
检查单词:
import os # os directory library
# Searching for a keyword Name and returning the name if found
def scanName(file):
name = 'larceny'
with open(file, 'r') as file1:
lines = file1.read()
if name in lines.lower():
return name
# To find all files ending with txt in a folder
for file in os.listdir("C:\Users\Vadim\Desktop\Python"):
if file.endswith(".txt"):
if scanName(file):
print( file )
这里将文件的全部内容作为变量lines
读入,我们检查搜索到的单词,返回文件的名称,尽管我们可以返回True
。 />
如果函数返回结果,我们将打印文件的名称。