2013-03-01 72 views
1

我可以以某種方式將os.walk()的輸出保存在變量中嗎?我試過 basepath, directories, files = os.walk(path) 但它沒有奏效。我想繼續目錄的文件和一個特定的子目錄。這是否有可能?謝謝保存os.walk()在變量

回答

2

os.walk()返回一個生成器,它將連續返回全部文件/目錄樹的起始路徑。如果您只想處理目錄中的文件和一個特定的子目錄,則應使用os.listdir()os.path.isfile()os.path.isdir()的混合組合來獲得所需內容。

事情是這樣的:

def files_and_subdirectories(root_path): 
    files = [] 
    directories = [] 
    for f in os.listdir(root_path): 
     if os.path.isfile(f): 
      files.append(f) 
     elif os.path.isdir(f): 
      directories.append(f) 
    return directories, files 

並使用它像這樣:

directories,files = files_and_subdirectories(path) 
+0

那是一個奇妙的解決方案,我會通過列出子目錄展開它,我有我想要什麼 謝謝 – mut3chs 2013-03-01 20:06:19

1

我想繼續在目錄中的文件和一個特定 子目錄。這是否有可能?

如果這是你想要的,然後簡單地嘗試

[e for e in os.listdir('.') if os.path.isfile(e)] + os.listdir(special_dir)