2012-05-16 31 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函數處理文件。
是否可以編寫一個腳本,只需輸入一個目錄>處理文件>離開目錄>進入不同的目錄>等,就可以沿着目錄走動。
請幫忙。走着和處理文件,在python

+1

看看在os.walk功能http://docs.python.org/library /os.html?highlight=os.walk#os.walk – Levon

+0

@Levon thanx爲您的鏈接...實際上我是Python的新手,所以它非常有幫助。 – diffracteD

回答

0

尋址阿拉貢的解決方案Abhisek的評論:

進口OS 文件夾= '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並輸入其中包含的每個文件夾,併爲您提供其中包含的文件夾和文件。有了這個,你應該能夠做到你需要處理的明智。