使用 python os.rename 时出现错误 [183]

Rob*_*ack 5 python

这是我第一次使用 python,我一直遇到错误 183。我创建的脚本在网络中搜索所有“.py”文件并将它们复制到我的备份驱动器。请不要嘲笑我的剧本,因为这是我的第一个剧本。

有什么线索可以告诉我我在脚本中做错了什么吗?

import os
import shutil
import datetime

today = datetime.date.today()
rundate = today.strftime("%Y%m%d")

for root,dirr,filename in os.walk("p:\\"):
    for files in filename:
        if files.endswith(".py"):
            sDir = os.path.join(root, files)
            dDir = "B:\\Scripts\\20120124"
            modname = rundate + '_' + files
            shutil.copy(sDir, dDir)
            os.rename(os.path.join(dDir, files), os.path.join(dDir, modname))
            print "Renamed %s to %s in %s" % (files, modname, dDir)
Run Code Online (Sandbox Code Playgroud)

obm*_*arg 5

我猜你正在 Windows 上运行脚本。根据Windows错误代码列表,错误183是ERROR_ALREADY_EXISTS

所以我猜脚本失败是因为您试图在现有文件上重命名文件。

也许您每天运行该脚本不止一次?这将导致所有目标文件都已存在,因此当脚本多次运行时重命名会失败。

如果您特别想覆盖这些文件,那么您可能应该os.unlink首先使用删除它们。