【问题标题】:How can I move files between mounts using Python?如何使用 Python 在挂载之间移动文件?
【发布时间】:2015-01-02 02:42:51
【问题描述】:

我一直在使用os.rename 在 Python 中移动文件。但是,如果您尝试在一个挂载点和另一个挂载点之间移动文件(在 Linux 上),这似乎会失败。

是否有 Python 库或函数可以在挂载点之间移动文件,类似于 Linux 上的 mv

【问题讨论】:

    标签: python file operating-system move


    【解决方案1】:

    这是os.rename 的常见警告。更高级别的shutil 模块和它的move 方法可以通过使用os.rename()shutil.copy2() 来解决这个问题。

    要记住的一点是,如果os.rename 不在同一个文件系统上,这将失去原子保证。

    https://docs.python.org/2/library/shutil.html#shutil.move

    【讨论】:

    • 另请注意,Python 在这里与 POSIX 非常接近。 mv 的文档指定,因为 rename 不能跨文件系统工作,mv 应该使用 cprm 如果它失败。等效地,os.rename 不能跨文件系统工作,shutil.move 使用 copy2 和适当的删除功能。
    【解决方案2】:

    您可以使用mv 使用subprocess

    from subprocess import check_call
    
    check_call(["mv","src","dest"])
    

    【讨论】:

    • 谢谢。这行得通,但我认为其他解决方案 (shutil.move) 更清洁。
    猜你喜欢
    • 2011-06-19
    • 1970-01-01
    • 2020-04-23
    • 2012-05-03
    • 1970-01-01
    • 2019-11-17
    • 1970-01-01
    • 1970-01-01
    • 2012-10-31
    相关资源
    最近更新 更多