2013-03-01 36 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)