不知道为什么我的python循环不起作用

时间:2016-12-06 20:35:18

标签: python

我有一些文本文件(这里只使用两个),我想将它们读入Python并操作它们。我试图存储字符串列表(每个单词一个字符串,每个文件一个列表)。

我的代码目前看起来像这样: (文件名为m1.txt和m2.txt)

dict={'m1':[],'m2':[]}

for k in files:        
with open(k,'r') as f:
        for line in f:
            for word in line.split():
                for i in range (1,3):
                    dict['m'+str(i)].append(word)

此代码最终将两个文本文件中的单词组合在一起,而不是分别为每个文件提供单词。最终我想阅读很多文件,所以任何有关如何将它们分开的帮助将非常感激!

2 个答案:

答案 0 :(得分:1)

您正在重复打开每个列表,同时通过最终for循环中的替代i值处理每个单独的文件。

尝试这样的事情:

dict={'m1':[],'m2':[]}

for i, k in enumerate(files):        
    with open(k,'r') as f:
        for line in f:
            for word in line.split():
                dict['m'+str(i+1)].append(word)

我已经“按原样”保留了您的代码,但上面关于不使用语言关键字的评论非常重要。

答案 1 :(得分:1)

此示例动态提取文件名(不带扩展名)并使用它来表示我们工作的字典中的位置:

files = ['m1.txt', 'm2.txt'];
file_store = {'m1':[],'m2':[]}

for file in files:
    prefix = (file.split(r'.'))[0]
    with open(file, 'r') as f:
        for line in f:
            for word in line.split():
                file_store[prefix].append(word)