【问题标题】:os.rename() move the directory but does not removed the old one. it worked like copyos.rename() 移动目录但不删除旧目录。它像副本一样工作
【发布时间】:2014-06-06 09:51:56
【问题描述】:

我在 'C:\' 上运行并在 'Y:\' 中复制,这有关系吗?

我的代码:

def rename(src, dst):
    try:
        if os.path.exists(dst):
            os.unlink(dst)
        os.renames(src, dst )
        return 0
    except OSError, err:
        print("Rename '%s' to '%s' failed: %s" % (src,dst,os.strerror(err.errno)))

【问题讨论】:

  • 你对 C: 有删除权限吗?
  • 我确实对 C:\ 有权限,并且 src 和 dst 都在 Y:\ 上。此外,如果我使用 os.remove() 它工作正常。这意味着这不是权限或位置问题。

标签: python python-2.7 python-3.x rename


【解决方案1】:

如果涉及不同的文件系统,你应该使用shutil.move(src, dst)

来自documentation

如果目标位于当前文件系统上,则使用 os.rename()。否则,src 被复制(使用 shutil.copy2())到 dst,然后被删除。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-09
    • 1970-01-01
    • 2011-04-06
    • 2012-02-03
    • 1970-01-01
    • 2011-01-15
    相关资源
    最近更新 更多