2013-10-16 135 views
1

我在多个目录中有多个文件,并且想迭代每个目录以便为我的代码运行。我写过这样的代码。python从多个目录(文件夹)打开文件

import os 

path = [".\\folder1\\",".\\forder2\\"] 
for i in path: 
    # print (i) # test 
    for filename in os.listdir(i): 
     filedata = open(i+filename,"r") 
     data = filedata.read().split() 
     string = "".join(data) 
     filedata.close() 

但是,由于我没有具体说明,它会得到错误。 每个文件夹都包含字符串,并通过os.listdir访问它们。

从多个目录中读取文件时如何解决这个问题?

预先感谢您。

+0

你将拥有文件的变动数,或者是它只有两个尝试一下呢? – enginefree

+0

其实我要改变我将在列表'路径'上添加的目录数量。我想os.listdir读取目录中的所有文件。谢谢。 – Karyo

回答

4

使用os.path.join

path = ["folder1", "folder2"] 
for i in path: 
    for filename in os.listdir(i): 
     with open(os.path.join(i, filename), 'r') as filedata: 
      string = "".join(filedata.read().split()) 
+0

谢谢你的帮助,但它得到'TypeError:类型为'int'的对象没有len()'并且'~~在连接断言len(path)> 0' 我没有收到消息和错误不是特定的...希望还有其他建议。 – Karyo

+0

哦,我的坏。我使用了相同的变量,'我',沿着我的代码两次! 这完美的作品!谢谢Josha! – Karyo

+0

很高兴帮助,@Karyo :) –