打开和读取不同目录中的多个文件

时间:2016-08-02 12:32:27

标签: python directory os.walk

我有一个庞大的目录列表。使用/home作为当前目录,最高级别是年份。有七年:2010年,2011年,2012年,2013年,2014年,2015年和2016年。

然后每个月都有子目录,例如/home/2010/01。当然,有十二个月,每一个标记为01,02,03,......,11,12。

每个月每天都有:01,02,......,与月份一样多天。

每天都有一个名为0700的子目录。因此,按照上一个示例,我们将在/home/2010/01/01/0700

此目录中有一个包含数据的文件(表格形式)。该文件的名称显示其日期,例如:/home/2010/01/01/0700/pnw_20100101_TG.geo

我想读取该文件中的数据并将其加载到pandas数据帧以过滤异常值。我想我知道该怎么做,所以让我们分开,但问题是我无法读取文件。 这是我尝试过的

import os
for root, dirs, files in os.walk("/home"):
    for name in files:
        f = open(name, 'r')
        f.close

但是我收到与文件打开相关的错误消息:IOError: [Errno 2] No such file or directory: 'pnw_20100101_TG.geo'.它似乎无法识别文件。但是,如果我这样做,print(os.path.join(root, name))它会正确列出所有文件。

您建议能够打开和阅读文件吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

您正在打开简单文件名,但在嵌套文件夹中找不到它。加入root:

import os
for root, dirs, files in os.walk("/home"):
    for name in files:
        f = open(os.path.join(root, name), 'r')
        f.close