删除文件夹下的文件
近期项目中,遇到了一个要删除文件夹下的内容的步骤。我写了第一个代码块:
import os
import shutil
import time
#删除文件夹下文件(一)
while True:
xiazai = os.path.exists(r"C:\Users\lwj\Desktop\1111")
if xiazai:
print("文件夹已存在,先删除文件夹")
shutil.rmtree(r"C:\Users\lwj\Desktop\1111")
#time.sleep(1)
print("新建一个空的文件夹")
os.mkdir(r"C:\Users\lwj\Desktop\1111")
else:
print("文件夹不存在,新建一个新的文件夹")
os.mkdir(r"C:\Users\lwj\Desktop\1111")
在设计器里循环运行时发生了一个报错:
PermissionError: [WinError 5] 拒绝访问。: 'C:\\Users\\lwj\\Desktop\\1111'
这里将time.sleep(1)
取消注释即可正常运行。
后来,我又写了第二个代码块,实现同样的功能:
os.chdir(r"C:\Users\lwj\Desktop\1111")
list3 = os.listdir(r"C:\Users\lwj\Desktop\1111")
def clear_file(list1, path):
if len(list1) > 0:
for f in list1:
if os.path.isfile(path + "\\%s" % f):
os.remove(path + "\\%s" % f)
else:
os.chdir(path + "\\%s" % f)
list2 = os.listdir(path + "\\%s" % f)
# 递归
clear_file(list2, path + "\\%s" % f)
os.chdir(path)
os.rmdir(f)
clear_file(list3, r"C:\Users\lwj\Desktop\1111")
如果要删除文件夹内存在子文件或子文件夹的话,os.remove()是无法删除的,需要使用 shutil 模块的 rmtree 功能 shutil.rmtree(path) 迭代删除文件夹