博客
关于我
linux卸载python模块_以Linux为平台在Python中删除文件和目录(文件夹)的方法
阅读量:793 次
发布时间:2023-02-03

本文共 2686 字,大约阅读时间需要 8 分钟。

Python有一些内置模块,可让您删除文件和目录,本教程说明了如何使用os、pathlib和shutil模块中的函数删除文件和目录(文件夹),以下操作是在Linux系统平台中进行的。

删除文件

在Python中,您可以使用os.remove()、os.unlink()、pathlib.Path.unlink()删除单个文件。

os模块提供了一种与操作系统交互的便携式方法,该模块可用于Python 2和3(参考:在CentOS 8上安装Python 3和Python 2,及设置默认Python版本)。

要使用os.remove()删除单个文件,请将路径作为参数传递给文件:

import os

file_path = '/tmp/file.txt'

os.remove(file_path)

os.remove()和os.unlink()函数在语义上是相同的:

import os

file_path = '/tmp/file.txt'

os.unlink(file_path)

如果指定的文件不存在,则会引发FileNotFoundError错误,os.remove()和os.unlink()都只能删除文件,不能删除目录,如果给定的路径指向目录,则将引发IsADirectoryError错误。

删除文件需要在包含文件的目录上具有写和执行权限,否则,将提示PermissionError错误。

为了避免在删除文件时出错,可以使用异常处理来捕获异常并发送适当的错误消息:

import os

file_path = '/tmp/file.txt'

try:

os.remove(file_path)

except OSError as e:

print("Error: %s : %s" % (file_path, e.strerror))

pathlib模块在Python 3.4及更高版本中可用,如果要在Python 2中使用此模块,可以使用pip进行安装,pathlib提供了一个面向对象的界面,用于处理不同操作系统的文件系统路径。

要使用pathlib模块删除文件,请创建一个指向该文件的Path对象,然后对该对象调用unlink()方法:

from pathlib import Path

file_path = Path('/tmp/file.txt')

try:

file_path.unlink()

except OSError as e:

print("Error: %s : %s" % (file_path, e.strerror))

pathlib.Path.unlink()、os.remove()和os.unlink()也可用于删除符号链接。

模式匹配

您可以使用glob模块根据模式匹配多个文件,例如,要删除/tmp目录中的所有.txt文件,您可以使用以下内容:

import os

import glob

files = glob.glob('/tmp/*.txt')

for f in files:

try:

f.unlink()

except OSError as e:

print("Error: %s : %s" % (f, e.strerror))

要递归删除/tmp目录中所有.txt及其下所有子目录的文件,请将recursive=True参数传递给glob()函数,并使用`**`模式:

import os

import glob

files = glob.glob('/tmp/**/*.txt', recursive=True)

for f in files:

try:

os.remove(f)

except OSError as e:

print("Error: %s : %s" % (f, e.strerror))

pathlib模块包含两个glob函数glob()和rglob(),用于匹配给定目录中的文件,glob()仅与顶级目录中的文件匹配,rglob()递归地匹配目录和所有子目录中的所有文件,下面的示例代码删除/tmp目录中的所有.txt文件:

from pathlib import Path

for f in Path('/tmp').glob('*.txt'):

try:

f.unlink()

except OSError as e:

print("Error: %s : %s" % (f, e.strerror))

删除目录(文件夹)

在Python中,您可以使用os.rmdir()和pathlib.Path.rmdir()删除一个空目录,而shutil.rmtree()删除一个非空目录。

以下示例显示如何删除空目录:

import os

dir_path = '/tmp/img'

try:

os.rmdir(dir_path)

except OSError as e:

print("Error: %s : %s" % (dir_path, e.strerror))

另外,您可以使用pathlib模块删除目录:

from pathlib import Path

dir_path = Path('/tmp/img')

try:

dir_path.rmdir()

except OSError as e:

print("Error: %s : %s" % (dir_path, e.strerror))

shutil模块允许您对文件和目录执行许多高级操作。

使用shutil.rmtree()函数,您可以删除给定目录,包括其内容:

import shutil

dir_path = '/tmp/img'

try:

shutil.rmtree(dir_path)

except OSError as e:

print("Error: %s : %s" % (dir_path, e.strerror))

传递给shutil.rmtree()的参数不能是指向目录的符号链接。

结论

Python提供了几个用于处理文件的模块,以上我们向您展示了如何使用os.remove()、os.unlink()、pathlib.Path.unlink()删除单个文件,os.rmdir()和pathlib.Path.rmdir()删除空白文件directory和shutil.rmtree()以递归删除目录及其所有内容。

删除文件或目录时要格外小心,因为一旦删除文件,就无法轻松恢复它。

相关主题

转载地址:http://iazfk.baihongyu.com/

你可能感兴趣的文章
linux 让php支持mysql_转 linux下php扩展mysqli的支持
查看>>
Linux 设置/删除环境变量
查看>>
linux 访问mysql
查看>>
linux 超好用的命令行工具
查看>>
Linux 软件 RAID 设置
查看>>
Linux 软件安装与卸载
查看>>
Linux 运维王者从不离手的10款工具,全用过会变成高手?
查看>>
Linux 进程管理及监控与性能评估
查看>>
Linux 进程间通信 --- 信号通信 --- signal --- signal(SIGINT, my_func); --- 按键驱动异步通知...
查看>>
Linux 通过压缩包安装 MySQL 并设置远程连接教程
查看>>
Linux 通过监控系统内存并定时重启指定服务
查看>>
Linux 部署ASP.NET SQLite 应用 的坎坷之旅 附demo及源码
查看>>
linux 配置 skywalking
查看>>
linux 配置 vsftpd 匿名用户可增加、修改、删除文件
查看>>
linux 防火墙操作
查看>>
Linux&Debian系统安装nginx
查看>>
Linux(Centos)远程传输文件到另一台电脑机器上---指令(scp)
查看>>
Linux(ubuntu)使用dd从iso制作win7安装u盘(读卡器一样),以及备份分区
查看>>
Linux+oracle修改IP方法
查看>>
Linux-----sed 命令详解
查看>>