如何用python删除一个文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何用python删除一个文件相关的知识,希望对你有一定的参考价值。

使用Python删除文件有多种方法,但是最好的方法如下:
os.remove()删除文件
os.unlink()删除文件
shutil.rmtree()删除目录及其下面所有内容
pathlib.Path.unlink()在Python3.4及更高版本中用来删除单个文件pathlib模块。
os.remove()删除文件
Python中的OS模块提供了与操作系统进行交互的功能。OS属于Python的标准实用程序模块。该模块提供了使用依赖于操作系统的功能的便捷式方法。
python中的os.remove()方法用于删除文件路径。此方法无法删除目录。如果指定的路径是目录,则该方法将引发OSError。
注意:可以使用os.rmdir()删除目录。
使用os.unlink()删除Python文件
os.unlink()是os.remove()的别名。在Unix OS中,删除也称为unlink。
注意:所有功能和语法与os.unlink()和os.remove()相同。它们都用于删除Python文件路径。两者都是Python标准库的os模块中执行删除功能的方法。
它有两个名称,别名:os.unlink()和os.remove()。
为同一个函数提供两个别名的可能原因是,该模块的维护者认为,许多程序员可能会从C的底层编辑转向Python,其中库函数和底层系统调用称为unlink(),而其他人则可能会使用rm命令或shell脚本来简化语言。
使用shutil.rmtree()删除Python文件
shutil.rmtree():删除指定的目录,所有子目录和所有文件。此功能特别危险,因为它无需检查即可删除所有内容。结果,您可以使用此功能轻松丢失数据。
rmtree()是shutil模块下的一种方法,该方法以递归方式删除目录及其内容。
使用pathlib.Path.unlink()删除文件
pathlib模块在Python3.4及更高版本中可用。如果要在Python2中使用此模块,可以使用pip进行安装。pathlib提供了一个面向对象的界面,用于处理不同操作系统的文件系统路径。
要使用pathlib模块删除文件,请创建一个指向该文件的Path对象,然后对该对象调用unlink()方法。
参考技术A os.remove('文件') 直接从系统里面删除文件,不经过回收站。
os.rmdir('文件夹') 直接从系统里面删除空文件夹,不经过回收站。
shutil.rmtree('文件夹') 直接从系统里面删除文件夹(文件夹里面可以有别的文件),不经过回收站。所以要小心不要误删。
可使用第三方包,send2trash
send2trash.send2trash() 可以删除任何东西,删除的东西送回回收站。本回答被提问者采纳

如何用Python删除一个文件?

 

删除文件 path,删除时候如果path是一个目录, 抛出 OSError错误。

remove() 同 unlink() 的功能是一样的

os.remove(a.txt)

如果remove文件夹就会报错

>>> os.remove(r"C:\\Users\\k\\Desktop\\aaa")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
PermissionError: [WinError 5] 拒绝访问。: C:\\\\Users\\\\k\\\\Desktop\\\\aaa

现在删除下面这个文件

技术图片

删除xx.txt

>>> os.remove(r"C:\\Users\\k\\Desktop\\aaa\\xx.txt")

 

 

os.removedirs(path),删除文件夹,但是文件夹必须为空。

递归地删除目录。类似于rmdir(), 如果子目录被成功删除, removedirs() 将会删除父目录;但子目录没有成功删除,将抛出错误。

例如, os.removedirs(“a/b/c”) 将首先删除c目录,然后再删除b和a, 如果他们是空的话,则子目录不能成功删除,将抛出 OSError异常

技术图片

 

>>> import os
>>> os.removedirs("C:\\Users\\k\\Desktop\\aaa")
  File "<stdin>", line 1
SyntaxError: (unicode error) unicodeescape codec cant decode bytes in position 2-3: truncated \\UXXXXXXXX escape

>>> os.removedirs(r"C:\\Users\\k\\Desktop\\aaa") Traceback (most recent call last): File "<stdin>", line 1, in <module> File "C:\\Users\\k\\Anaconda3\\lib\\os.py", line 259, in removedirs rmdir(name) OSError: [WinError 145] 目录不是空的。: C:\\\\Users\\\\k\\\\Desktop\\\\aaa

删除aaa文件夹,由于aaa文件夹非空,需要先删除子目录bbb,再删除父目录aaa

技术图片

写法如下

>>> os.removedirs(r"C:\\Users\\k\\Desktop\\aaa/bbb")

 



如果要删除目录,请使用rmdir()

os.rmdir(path)

技术图片

删除目录 path,要求path必须是个空目录,否则抛出OSError错误

>>> os.rmdir(r"C:\\Users\\k\\Desktop\\aaa")
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
OSError: [WinError 145] 目录不是空的。: C:\\\\Users\\\\k\\\\Desktop\\\\aaa

 

 

删除一个非空目录

技术图片

例子

>>> import shutil
>>> shutil.rmtree(r"C:\\Users\\k\\Desktop\\aaa")
>>>

 

以上是关于如何用python删除一个文件的主要内容,如果未能解决你的问题,请参考以下文章

急求:如何用python删除文本中的重复行?

求助:如何用python脚本删除文本中的重复行(相同记录只保留一个)

如何用Python删除或者移动Excel中的sheet

如何用python给微信发信息

如何用python查询文件路劲

如何用Python打开指定的某个文件夹?比如我要用Python打开D盘里的一个普通文件,该怎么做