在文件中查找单词,返回定义

时间:2013-10-22 03:14:15

标签: python regex python-3.x

我正在制作一个小字典应用程序,只是为了学习Python。我有添加单词的功能(只需添加一个检查以防止重复)但我正在尝试创建查找单词的功能。

当我将文字附加到文本文件时,这就是我的文本文件。

{word|Definition}

我可以通过这样做检查这个词是否存在,

if word in open("words/text.txt").read():

但我如何得到这个定义?我假设我需要使用正则表达式(这就是为什么我将它拆分并放在花括号内),我只是不知道如何。

3 个答案:

答案 0 :(得分:2)

read()会读取整个文件内容。你可以这样做:

for line in open("words/text.txt", 'r').readlines():
    split_lines = line.strip('{}').split('|')
    if word == split_lines[0]: #Or word in line would look for word anywhere in the line
        return split_lines[1]

答案 1 :(得分:2)

如果您想要有效的搜索,可以使用字典。

with open("words/text.txt") as fr:
    dictionary = dict(line.strip()[1:-1].split('|') for line in fr)
print(dictionary.get(word))

还要尽量避免使用如下语法:

if word in open("words/text.txt").read().

使用上下文管理器(with语法)确保文件将被关闭。

答案 2 :(得分:0)

获取所有定义

f = open("words/text.txt")
for line in f:
  print f.split('|')[1]