Python:如何在我的代码中包含多个文本文件?

时间:2016-05-24 19:20:57

标签: python text-files

我在Windows上使用Python3。如何包含多个文本文件,以便我可以使用多个文件运行我的代码?

article_one = re.findall('\w+', open('D.txt',).read().lower())
wordbank = {}

for word in article_one:
    word = word.lower().strip(string.punctuation)
    if word not in wordbank:
        wordbank[word] = 1
    else:
        wordbank[word] += 1

sortedwords = sorted(wordbank.items(), key=operator.itemgetter(1))

for word in sortedwords:
    print (word[1], word[0])​
 

3 个答案:

答案 0 :(得分:1)

我想你可以在执行正则表达式之前将文件连接在一起,或者只是遍历文件。您还可以使用collections.Counter字典在word列表中获取单词频率。

from collections import Counter

words = []
for filename in ['A.txt', 'D.txt']:
    with open(filename, 'r') as f:
        words.extend(re.findall('\w+', f.read().lower()))

wordbank = Counter(words)

for word, cnt in wordbank.most_common():
    print word, cnt

答案 1 :(得分:1)

类似的东西:

在此示例中,您可以根据需要创建文件列表 - 可以使用glob或任何其他方式。如果您需要帮助 - 请告诉您创建它的标准。

filelist = ['D.txt','E.txt']
wordbank = {}
for file in filelist:
    article_one = re.findall('\w+', open(file,).read().lower())

    for word in article_one:
        word = word.lower().strip(string.punctuation)
        if word not in wordbank:
            wordbank[word] = 1
        else:
            wordbank[word] += 1

sortedwords = sorted(wordbank.items(), key=operator.itemgetter(1))

for word in sortedwords:
    print (word[1], word[0])​

答案 2 :(得分:0)

你可以使用" glob" library获取与表达式匹配的所有文件的数组(即* .txt)。拥有该数组后,您可以迭代它,逐个打开每个文件并执行您尝试执行的步骤。

https://docs.python.org/3/library/glob.html