2012-05-16 1 views
2

У меня есть огромные данные в виде дерева каталогов, как:
c:/user/name/class/std/section I to VI [all section has individual folder i.e. 6 folder in total and all folder have 100+ files to be processed]
Я написал сценарий, в котором, если я предоставлю папку, содержащую файлы, например, Section I, тогда он обрабатывал файлы внутри с помощью функции glob.iglob.
Можно ли написать скрипт, который может перемещаться по каталогам, просто введя один каталог> файл обработки> оставить каталог> введя другой каталог> и так далее.
помогите пожалуйста.ходьба вдоль и обработки файлов в директории в питона

+1

Посмотрите на функцию os.walk http://docs.python.org/library /os.html?highlight=os.walk#os.walk – Levon

+0

@Levon thanx для вашей ссылки ... на самом деле я новичок в Python, так что это было очень полезно. – diffracteD

ответ

0

Обращаясь комментарий Abhisek на решение Арагона:

импорт зева папка = 'C:'

for root, dirs, files in os.walk(folder): 
    for name in files: 
     (base, ext) = os.path.splitext(name) 
     if ext in "csv": 
      print os.path.join(root, name) 
4

вы можете попробовать этот код:

import os 
folder = 'C:' 

for root, dirs, files in os.walk(folder): 
    for name in files: 
     print os.path.join(root, name) 
    for name in dirs: 
     print os.path.join(root, name) 

UPDATE:

импорт Os папка = 'C:'

for root, dirs, files in os.walk(folder): 
    for name in files: 
     nm, ext = os.path.splitext(name) 
     if ext == ".csv": 
      print os.path.join(root, name) 
+0

, но предположим, что если я хочу найти и обработать файлы * .csv внутри каждой папки, тогда какой будет самый простой способ. ?? – diffracteD

0
import os 
for (dirpath, dirnames, filenames) in os.walk(directory): 
    # Do some processing 

Это будет перебирать корень указанного каталога, например. c:/user/name/class/std и введите каждую папку, содержащуюся в ней, и укажите папки и файлы, содержащиеся в них. С этим вы должны быть способны делать то, что вам нужно для обработки мудрым.