0

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

当我将单词附加到文本文件时,这就是我的文本文件的样子。

{word|Definition}

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

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

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

4

3 回答 3

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]
于 2013-10-22T03:18:38.137 回答
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语法)确保文件将被关闭。

于 2013-10-22T03:19:39.720 回答
0

获取所有定义

f = open("words/text.txt")
for line in f:
  print f.split('|')[1]
于 2013-10-22T03:16:53.727 回答