读。校验。写。破碎的Python脚本

时间:2015-07-15 17:25:26

标签: python

我正在开发一个文字游戏,对于这个游戏,我需要一个单词列表。可悲的是,这个列表是所以很长,我只需要改进它(这个单词列表可以在任何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安装没有问题。

提前致谢!

1 个答案:

答案 0 :(得分:2)

我不知道输入文件格式,但如果每行只有一个单词,请在调用word之前尝试删除d.check(word)的行尾字符:

word = word.rstrip()