我在文件夹中有很多文件。我想删除一个文件后删除它。这两种方法的区别是什么?哪种方法适用于我的场景?谢谢!
答案 0 :(得分:35)
它们与official Python 2.7.15 documentation中描述的相同。
删除(删除)文件路径。如果 path 是目录, 提出OSError;请参阅下面的rmdir()以删除目录。 这是 与下面记录的unlink()函数相同。在Windows上, 尝试删除正在使用的文件会导致异常 提高;在Unix上,目录条目被删除但存储 在原始文件出现之前,分配给该文件的文件不可用 不再使用了。
可用性:Unix,Windows。
删除(删除)文件路径。 此功能与remove(); 相同 unlink()名称是其传统的Unix名称。
可用性:Unix,Windows。
答案 1 :(得分:7)
pathlib.Path
文件访问时虽然该问题专门要求删除os
模块文件,但最新版本的Python还有另一种选择来删除文件,这可能是替代方法。
pathlib.Path.unlink()
pathlib.Path.remove()
不存在 使用pathlib module进行文件访问时,请使用pathlib.Path.unlink()
删除文件。
Path.unlink()
方法替代了os.remove()
和os.unlink()
。它直接在 Path 对象上执行,而不是通过 string 参数传递文件的位置。
从Python v3.4开始,pathlib
内置模块可用于以面向对象的方式处理文件访问。我相信Pip也可以为旧版本的Python提供单独的软件包。
使用pathlib,您可以创建Path
类的文件夹和文件对象。删除文件的相关方法已合并为unlink()
。他们没有remove()
方法(可能是因为,根据shash678的回答,没有区别,它只是一个别名)。除了指定文件本身的基本方法外,这似乎等效于os
文件删除方法。
请参阅Object Oriented file system paths以及底部显示os.remove()
和os.unlink()
映射到Path.unlink()
的表格。
在Python v3.8中, missing_ok 参数已添加到Path.unlink()
函数中。如果使用*missing_ok* == True
,则在尝试删除文件之前,如果该文件不存在,则不会引发异常。