我正在开发一个文字游戏,对于这个游戏,我需要一个单词列表。可悲的是,这个列表是所以很长,我只需要改进它(这个单词列表可以在任何Mac上找到 / usr / share / dict / )。 / p>
为了优化它,我决定使用自己的Python脚本。我之前已经编写了一个脚本,删除所有以大写字母开头的单词(从而删除了地名等),并且它有效。就是这样:
with open("/Users/me/Desktop/oldwords.txt", "r") as text:
with open("/Users/me/Desktop/newwords.txt", "w") as towriteto:
for word in text:
if word[0]==word[0].lower():
towriteto.write(word)
然后,我决定进一步完善它;我决定删除所有不在pyenchant模块英语词典中的单词。这个操作代码与前面的代码非常相似。这是我的代码:
import enchant
with open("/Users/me/Desktop/newwords.txt", "r") as text:
with open("/Users/me/Desktop/words.txt", "w") as towriteto:
d = enchant.Dict("en_US")
for word in text:
if d.check(word):
towriteto.write(word)
可悲的是,这并没有给" towriteto"文件,经过一些调试,我发现了
d.check(word) -> False
它总是返回false。但是,当我单独检查单词时,真实单词返回True,假单词返回False,因为它们应该。
我不知道我的第二个脚本有什么问题。文件位置正确,并且pyenchant安装没有问题。
提前致谢!
答案 0 :(得分:2)
我不知道输入文件格式,但如果每行只有一个单词,请在调用word
之前尝试删除d.check(word)
的行尾字符:
word = word.rstrip()