Python输入和输出文件

时间:2017-03-26 22:50:44

标签: python file

遇到问题。 (对即将到来的考试进行评审)。第一个问题要求我将每行文本中的单词数量打印到输出文件中。这是一项简单的任务。 (提供我使用的代码)。另一个类似的问题是,打印每行文本中唯一单词的数量(计数)。我能得到的最远的是将单词附加到列表中,并打印列表的长度......但它最终会添加每次迭代。所以它会打印7,14,21。而不是7,7,7(仅作为一个例子,以帮助exapain)我将如何修复此代码以正常行为?我一直在尝试最后30分钟。任何帮助将不胜感激!

每行中单词数量的代码:

def uniqueWords(inFile,outFile):
    inf = open(inFile,'r')
    outf = open(outFile,'w')
    for line in inf:
        wordlst = line.split()
        count = len(wordlst)
        outf.write(str(count)+'\n')

    inf.close()
    outf.close()
uniqueWords('turn.txt','turnout.txt')

每行中唯一字数(失败)的代码:

def uniqueWords(inFile,outFile):
    inf = open(inFile,'r')
    outf = open(outFile,'w')
    unique = []
    for line in inf:
        wordlst = line.split()
        for word in wordlst:
            if word not in unique:
                unique.append(word)
        outf.write(str(len(unique)))

    inf.close()
    outf.close()
uniqueWords('turn.txt','turnout.txt')

1 个答案:

答案 0 :(得分:2)

如果第一个有效,请尝试set

def uniqueWords(inFile,outFile):
    inf = open(inFile,'r')
    outf = open(outFile,'w')
    for line in inf:
        wordlst = line.split()
        count = len(set(wordlst))
        outf.write(str(count)+'\n')

    inf.close()
    outf.close()
uniqueWords('turn.txt','turnout.txt')