2016-08-02 3 views
0

У меня есть огромный список каталогов. С /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

Вы открываете простое имя файла, но во вложенных папках оно не будет найдено. Присоедините его к корню:

+1

Также вы можете отфильтровать корневые папки, независимо от того, соответствуют ли они вашей спецификации даты с использованием регулярных выражений. –