如何标记文件中的一行文本

时间:2014-06-19 18:27:03

标签: python

假设文件shakespeare.txt包含单行。朱丽叶在罗密欧与罗密欧的演说 朱丽叶:     "罗密欧罗密欧!你是罗密欧的艺术吗?"

然后运行命令$ shakesort应该产生以下输出

art
o
romeo
thou
wherefore

到目前为止我的代码:

def main():
    s = Scanner("shakespeare.txt")
    tokens = ("O Romeo, Romeo! wherefore art thou Romeo?")
    str1 = s.readtoken()
    str2 = s.readtoken()
    str3 = s.readtoken()
    str4 = s.readtoken()
    str5 = s.readtoken()
    str6 = s.readtoken()
    str7 = s.readtoken()
    print(str1)
    print(str2)
    print(str3)
    print(str4)
    print(str5)
    print(str6)
    print(str7)
    s.close
    return 0;

main()

我的问题是它返回整个文件的前7个字符串,而不是指定的标记。如何从完整的Shakespeare.txt(包含数百万个单词)中指定这7个单词而不创建新文件并仅列出这些单词?

1 个答案:

答案 0 :(得分:0)

类似的东西:

    uniqwords = {}
    with open('shakespeare.txt') as f:
        for ln in f:
            words = ln.split()
            for word in words:
                word = word.replace('?', '').replace('!', '').replace(',', '').lower()
                uniqwords.setdefault(word, 0)

    for word in sorted(uniqwords.keys()):
        print word