递归扫描文件并删除python中的空目录

Joe*_*nes 6 python directory recursion file delete-file

我有以下结构:

Dir 1
|___Dir 2
   |___file 1
   |___file 2...
Dir 3
|___Dir 4
   |___file 3...
Run Code Online (Sandbox Code Playgroud)

我希望能够递归地找到每个文件,以我自己的方式处理文件,一旦完成,删除文件,移动到下一个.然后,如果目录是空的,那么删除它,继续向上,直到没有剩下.

只是不知道如何继续.

这就是我所拥有的:

for root, dirs, files in os.walk(dir):
    path = root.split('/')
    for file in files:
        file = os.path.join(root, file)
        process_file(file)
        os.remove(file)
Run Code Online (Sandbox Code Playgroud)

这很好,但我想删除子目录,只有它们是空的.

Joe*_*nes 5

好吧,我想这样做,必须运行os.walk虽然...

def get_files(src_dir):
# traverse root directory, and list directories as dirs and files as files
    for root, dirs, files in os.walk(src_dir):
        path = root.split('/')
        for file in files:
            process(os.path.join(root, file))
                    os.remove(os.path.join(root, file))

def del_dirs(src_dir):
    for dirpath, _, _ in os.walk(src_dir, topdown=False):  # Listing the files
        if dirpath == src_dir:
            break
        try:
            os.rmdir(dirpath)
        except OSError as ex:
            print(ex)


def main():
    get_files(src_dir)
    del_dirs(src_dir)


if __name__ == "__main__":
    main()
Run Code Online (Sandbox Code Playgroud)