我有一个文件夹里有很多文件。我想在每个文件被处理后删除它。
在使用
在使用
os.remove()
和os.unlink()
时有什么区别?哪种方法更适合我的情况?os.remove()
和os.unlink()
时有什么区别?哪种方法更适合我的情况?python-2.7
标签,但现已被移除。有关Python 3中所做更改的讨论,请参见此答案的评论部分。
根据Python 2.7 documentation中的描述,它们是完全相同的:
删除(delete)文件path。如果path是一个目录,则会引发OSError
;请参见下面的rmdir()
以删除目录。这与下面记录的unlink()
函数相同。在Windows上,尝试删除正在使用的文件会导致引发异常;在Unix上,目录条目被删除,但文件分配的存储空间直到原始文件不再使用才可用。
可用性:Unix,Windows。
删除文件路径。这个函数与remove()
相同;unlink()
是它的传统Unix名称。
可用性:Unix,Windows。os.remove is os.unlink
的结果为False,因此它们并不仅仅是相同函数对象的不同名称(尽管可能有相同的实现)。 我想知道背后发生了什么... - Mark Ameryos.unlink is os.remove
),但在使用参数诊所重做后,它们现在成为两个单独的函数 -- https://bugs.python.org/issue25930 - anthony sottilepathlib.Path
访问文件虽然问题特别要求使用os
模块删除文件,但是Python的最新版本有另一种删除文件的选项,也许可以作为替代方案。
pathlib.Path.unlink()
pathlib.Path.remove()
不存在如果使用pathlib模块进行文件访问,请使用pathlib.Path.unlink()
来删除文件。
Path.unlink()
方法是os.remove()
和os.unlink()
的替代方法。它直接在Path对象上执行,而不是通过字符串参数传递文件位置。
从Python v3.4开始,内置的pathlib
模块可用于以面向对象的方式处理文件访问。我相信还有一个单独的包可以通过Pip在较旧版本的Python中使用。
使用pathlib,你可以创建Path
类的文件夹和文件对象。删除文件的相关方法已被合并到unlink()
中。它们没有remove()
方法(可能是因为根据shash678的答案,它们没有区别,只是一个别名)。这与os的文件删除方法相当,除了指定文件本身的基础方式。
请参见面向对象的文件系统路径,以及底部显示os.remove()
和os.unlink()
都映射到Path.unlink()
的表格。
在Python v3.8中,Path.unlink()
函数添加了一个missing_ok参数。当*missing_ok* == True
时,在尝试删除文件之前,如果文件不存在不会引发异常。
rm
和unlink
是不同的。http://serverfault.com/questions/38816/what-is-the-difference-between-unlink-and-rm - Chris_Randsexit
和quit
即可。 - Tadhg McDonald-Jensen