跳转到主要内容

Python 2.x的os.replace()回溯

项目描述

os.replace()的回溯

https://docs.pythonlang.cn/3.3/library/os.html#os.replace

http://bugs.python.org/issue8828

建议用法

import sys
if sys.version_info >= (3, 3):
    from os import replace
elif sys.platform == "win32":
    from osreplace import replace
else:
    # POSIX rename() is always atomic
    from os import rename as replace

Python 3.1不受支持。请升级到Python 3.2或更高版本。

技术细节

replace()函数使用具有MOVEFILE_REPLACE_EXISTING标志的MoveFileEx()。此标志不能用于重命名目录,因此在POSIX上不等于rename(P)。

MoveFileEx() 不保证 原子性。在特定且未知的情况下,它可能会静默回退到对CopyFile()的非原子调用。MoveFileTransacted()可以改善这种情况,但需要Vista或更高版本。

http://msdn.microsoft.com/en-us/library/windows/desktop/aa365240%28v=vs.85%29.aspx http://msdn.microsoft.com/en-us/library/windows/desktop/aa365241%28v=vs.85%29.aspx

致谢

原始补丁由Antoine Pitrou提供。

变更日志

pyosreplace 0.1

发布日期: 05-Nov-2013

  • Python 3.2支持

  • tox进行测试

pyosreplace 0.1b1

发布日期: 02-Jul-2013

  • 初始测试版发布

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源代码发行版

pyosreplace-0.1.zip (10.5 kB 查看哈希值)

上传时间 源代码

构建发行版

pyosreplace-0.1.win-amd64-py3.2.exe (229.8 kB 查看哈希值)

上传时间 源代码

pyosreplace-0.1.win-amd64-py2.7.exe (229.3 kB 查看哈希值)

上传时间 源代码

pyosreplace-0.1.win-amd64-py2.6.exe (229.6 kB 查看哈希值)

上传时间 源代码

pyosreplace-0.1.win32-py3.2.exe (201.9 kB 查看哈希值)

上传时间 源代码

pyosreplace-0.1.win32-py2.7.exe (201.9 kB 查看哈希值)

上传时间 源代码

pyosreplace-0.1.win32-py2.6.exe (202.2 kB 查看哈希值)

上传时间 源代码

由以下机构支持