Python程序重命名文件名,同时覆盖是否已有该文件
问题内容:
如标题所述,我想要一个可更改文件名的python程序,但是如果已有的文件具有该目标名称,我想覆盖它。
import os, sys
original = sys.argv[1]
output = sys.argv[2]
os.rename(original, output)
但是,当已经有该目标名称的文件时,我的代码仅向我显示此错误。
os.rename<original, output>
WindowsError: [Error 183] Cannot create a file when that file already exists
我应该怎么做?
问题答案:
在Windows上,os.rename
不会替换目标文件(如果存在)。您必须先将其删除。您可以捕获该错误,然后在删除文件后重试:
import os
original = sys.argv[1]
output = sys.argv[2]
try:
os.rename(original, output)
except WindowsError:
os.remove(output)
os.rename(original, output)