python 2.7,在open上使用Counter('file.txt')

时间:2011-07-26 14:37:21

标签: python python-2.7

我之前得到了一个很好的答案来解决类似问题,但我没有考虑我问的问题的可扩展性。我使用的文本编辑器遇到了大量文本粘贴和最后一行换行的问题,或者如果我从文档中删除所有换行符,那么文本会从屏幕上移开,不允许我滚动到结尾。所以我看到如何在文本上使用open作为文件,但现在代码无法正常工作 这是代码:

import sys 
import os
from collections import Counter
def main():
    with open('garbledText.txt') as text:
        print [k for k,v in Counter(text).items() if v<3]
if __name__=='__main__':
    main()
似乎它正朝着正确的方向发展,因为如果我将'v&lt; 3'改为'v&lt; 1',我会得到一个空列表,但是'v&lt; 3'我得到了所有的字符。
我要做的是解析'garbledText.txt'以查找出现1-2次的字符。

1 个答案:

答案 0 :(得分:1)

替换text text.read(),,第一个制作行集合和第二个字符集。

from collections import Counter

def main():
    with open('garbledText.txt') as text:
        collection = Counter(text.read())
    print [char for char, times in collection.items() if times < 3]

if __name__=='__main__':
    main()