使用python搜索和读取文件

时间:2016-09-16 06:49:23

标签: python python-2.7

我正在尝试搜索文件中的特定字词并将其打印出来。

这是我的代码:

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文件

我该如何解决?

谢谢!

2 个答案:

答案 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。 /> 如果函数返回结果,我们将打印文件的名称。