假设文件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个单词而不创建新文件并仅列出这些单词?
答案 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