如何递归列出所有文件夹和文件?

Luc*_*cas 5 python-2.7

如何在python中获取文件夹和文件,包括子目录的文件/文件夹?我需要每个文件/文件夹的绝对路径.

我想重命名所有文件夹和文件.所以我必须先重命名文件夹.

folder
-- file
-- folder1
---- folder1.1
------ file
------ folder1.1.1
-------- file
-- folder2
---- ...
Run Code Online (Sandbox Code Playgroud)

Idr*_*ris 7

我快速环顾四周,发现这很容易。来自斯文·马尔纳赫

您可以os.walk() 递归地遍历目录及其所有子目录:

for root, dirs, files in os.walk(path):
    for name in files:
        if name.endswith((".html", ".htm")):
            # whatever
Run Code Online (Sandbox Code Playgroud)

要构建这些名称的列表,您可以使用列表理解:

htmlfiles = [os.path.join(root, name)
             for root, dirs, files in os.walk(path)
             for name in files
             if name.endswith((".html", ".htm"))]
Run Code Online (Sandbox Code Playgroud)