python内置方法删除目录(空目录与非空目录)及文件
1、os.remove(file_path):删除文件
#PPTV是文件夹,xen.txt是文件
>>> os.remove(
'PPTV')
Traceback (most recent call last):
File "<pyshell#9>", line 1,
in <module>
os.remove('PPTV')
PermissionError: [WinError 5] 拒绝访问。:
'PPTV'
>>> os.remove(
'xen.txt')
>>> os.unlink(
'xen.txt')
注:
file_path如果是目录则抛出异常
remove() 同 unlink() 的功能是一样的
2、os.removedirs(path):递归删除目录
目录必须为空目录,若目录被删除,removedirs则会继续删除父目录;子目录未删除成功则报错
例子:
os.removedirs(“foo/bar/ba”) 将首先删除 “foo/bar/ba”目录,如果foo/bar是空,则会继续删除foo/bar,foo若为空则会继续删除foo
如果子目录不能成功删除,将 抛出异常
3、os.rmdir(path):删除目录
删除目录 path,要求path必须是个空目录,否则抛出OSError错误
4、递归删除目录和文件
1、通过shutil.rmtree(path)删除:
>>>
print(subprocess.getoutput(
'tree pytest'))
卷 工作 的文件夹 PATH 列表
卷序列号为 00000002
2C55:35CD
E:\CHENGD_FTP_CLIENT\MODULE\PYTEST
├─.idea
└─test_dirs
>>> shutil.rmtree(
'e:\\chengd_ftp_client\\module\\pytest')
>>>
print(subprocess.getoutput(
'tree pytest'))
卷 工作 的文件夹 PATH 列表
卷序列号为 00000002
2C55:35CD
E:\CHENGD_FTP_CLIENT\MODULE\PYTEST
无效的路径 -
\CHENGD_FTP_CLIENT\MODULE\PYTEST
没有子文件夹
2、通过os.walk方法删除:
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import os
import subprocess
obj_dir =
'E:\chengd_ftp_client\module\rmtest'
for root, dirs, files
in os.walk(obj_dir, topdown=
False):
for name
in files:
print(name)
os.remove(os.path.join(root, name))
for name
in dirs:
print(name)
os.rmdir(os.path.join(root, name))
转载于:https://www.cnblogs.com/chengd/p/7533473.html