我想使用 python 将文件从一个目录移动到 Linux 中的另一个目录。我希望实现类似于 bashmv
命令的行为。
这两个命令在实践中有何区别
os.replace()
os.rename()
Run Code Online (Sandbox Code Playgroud)
如果文件存在于目标中,而会覆盖它,是否os.rename()
会引发错误os.replace()
?
另外,如果我看到另一个次要区别,那就是os.replace()
需要一个文件作为目标而不仅仅是目录。
我可以在任何地方找到直接答案。
小智 14
在 POSIX 系统上,如果用户具有足够的权限,则重命名系统调用将默默地替换目标文件。Windows 上则不然。
os.replace
和os.rename
在 POSIX 系统上是相同的函数,但在 Windowsos.replace
上将MoveFileExW
使用MOVEFILE_REPLACE_EXISTING
设置的标志进行调用,以提供与 POSIX 系统上相同的效果。
如果您想要一致的跨平台行为,您应该考虑os.replace
在整个过程中使用。
os.rename()
os.rename()
Python 中的方法用于重命名文件或目录。此方法将源文件/目录重命名为指定的目标文件/目录。
os.replace()
os.replace()
Python中的方法还用于重命名文件或目录。
但:
OSError
将引发。