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)
这很好,但我想删除子目录,只有它们是空的.
好吧,我想这样做,必须运行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)