初版代码
只能删除目录内的所有文件,目录内的目录未删除。因为当时os.rmdir()不知道加在哪,好像哪都不对,有知道的请告诉我。
import os
from os import path
def diy_remove(the_path):
if path.exists(the_path):
if path.isdir(the_path):
filelist=os.listdir(the_path)
for i in filelist:
temp_the_path=path.join(the_path,i) # 要定义新变量存放新路径,如果用新路径覆盖the_path,多层嵌套的目录结构递归时会报错
if path.isdir(temp_the_path):
diy_remove(temp_the_path)
else:
os.remove(temp_the_path)
else:
os.remove(the_path)
else:
print('路径不存在')
diy_remove('')
第二版
相较第一版,先执行os.listdir(),再判断是文件还是文件夹。
import os
from os import path
def diy_remove(the_path):
if path.exists(the_path):
filelist = os.listdir(the_path)
for i in filelist:
temp_the_path = path.join(the_path,i) # 要定义新变量存放新路径,如果用新路径覆盖the_path,多层嵌套的目录结构递归时会报错
if path.isdir(temp_the_path):
diy_remove(temp_the_path)
else:
os.remove(temp_the_path)
os.rmdir(the_path) # 递归删除空目录.每次调用递归函数时,将当时的temp_the_path传入the_path,这样每层递归都有自己的the_path,这里是删除当前递归层的the_path
else:
print('路径不存在')
diy_remove('')
查到另外一种
import shutil
shutil.rmtree('')