【问题标题】:Opening and reading several files in different directories打开和读取不同目录中的多个文件
【发布时间】:2016-08-02 12:32:26
【问题描述】:

我有一个庞大的目录列表。以/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)) 它会正确列出所有文件。

您对能够打开和读取文件有什么建议?

谢谢。

【问题讨论】:

    标签: python directory os.walk


    【解决方案1】:

    您正在打开简单文件名,但在嵌套文件夹中找不到它。与根连接:

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

    【讨论】:

    • 您也可以使用正则表达式过滤根文件夹是否与您的日期规范匹配。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    • 2016-01-04
    • 1970-01-01
    相关资源
    最近更新 更多