2

我可以以某种方式保存os.walk()in variables 的输出吗?我试过 basepath, directories, files = os.walk(path) 了,但没有用。我想继续目录和一个特定子目录的文件。这有可能吗?谢谢

4

2 回答 2

3

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)
于 2013-03-01T19:56:49.710 回答
1

我想继续目录和一个特定子目录的文件。这有可能吗?

如果这就是你想要的,那么只需尝试

[e for e in os.listdir('.') if os.path.isfile(e)] + os.listdir(special_dir)
于 2013-03-01T20:01:03.343 回答