如何从.txt中查找匹配的单词

时间:2018-05-12 00:30:44

标签: python

我对Python很感兴趣,我真的需要帮助。我有一个带有名称的.txt文件,然后是代理。例如

John: 53.3.5.7.33
Adam: 34.5.6.7.44
Steven: 56.3.8.3.55
Jack: 46.35.5.8.34

因此该文件包含数千个具有不同用户名/名称的文件。我想这样做,以便询问用户他们想要寻找的人,例如。

name=input("What name would you like to look for: ")

然后我想要打开.txt文件,搜索名称并将整行打印到用户,以便立即打印所有记录。 简而言之,就像ctrl + F然后搜索一个单词/名字。 我希望有人可以帮助我,谢谢你的阅读。对不起,如果它是愚蠢的,但我无法在任何地方找到它。

2 个答案:

答案 0 :(得分:1)

假设您的文件内容为,

John: 53.3.5.7.33
Adam: 34.5.6.7.44
Steven: 56.3.8.3.55
Jack: 46.35.5.8.34

从用户那里获取输入,并迭代文件内容,

name=input("What name would you like to look for: ")
with open("file.txt") as f:
    for line in f:
        if name in line:  # OR line.startswith(name)
             print line

示例:

In [2]: name=input("What name would you like to look for: ")
What name would you like to look for: "Adam"

In [3]: name
Out[3]: 'Adam'

In [4]: with open('text.txt', 'r') as f:
   ...:     for line in f:
   ...:         if name in line:
   ...:             print line
   ...:
Adam: 34.5.6.7.44


In [5]:

如果您的文字文件中的条目是唯一的,或者您只想要第一行符合搜索条件,请将 break 置于循环中。

In [4]: with open('text.txt', 'r') as f:
       ...:     for line in f:
       ...:         if name in line:
       ...:             print line
       ...:             break
       ...:
    Adam: 34.5.6.7.44

答案 1 :(得分:0)

以下是可以执行此操作的python文件的内容:

def find_name(n, file_path):
    with open(file_path) as fp:
        for line in fp:
            if n.lower() in line.lower():
                print(line)

if __name__ == '__main__':
    name = input("What name would you like to look for: ")
    find_name(name, "path/to/file.txt")