gpt4 book ai didi

python - 为什么 os.rename() 在 Python 2.7 中引发异常?

转载 作者:可可西里 更新时间:2023-11-01 14:42:53 26 4
gpt4 key购买 nike

print(path)
print(dir_name+"\\"+f_parent+"_"+parts[0]+"_"+date+extension)
os.rename(path, dir_name+"\\"+f_parent+"_"+parts[0]+"_"+date+extension)

第 1 和第 2 行是调试和语句,这些打印:

D:\Doc\Papa\Photos\2012\2012_07_divers\CSC_3709.jpg
D:\Doc\Papa\Photos\2012\2012_07_divers\2012_07_divers_CSC_3709_2012_07_06_21_04_26.jpg

第 3 行加注:

File "D:\Doc\Papa\scripts\python\photosort\photosort.py", line 83, in rename
os.rename(path, dir_name+"\\"+f_parent+"_"+parts[0]+"_"+date+extension)
WindowsError: [Error 183] Impossible de créer un fichier déjà existant

转化为:

 WindowsError: [Error 183] Can not create a file that already exists

最佳答案

在 Python 3.3+ 上你可以使用 os.replace()而不是 os.rename() 来覆盖现有文件并避免在 Windows 上出现错误。

在旧的 Python 版本上,您可以使用 ctypes 模块模拟 os.replace():

# MOVEFILE_REPLACE_EXISTING = 0x1; MOVEFILE_WRITE_THROUGH = 0x8
ctypes.windll.kernel32.MoveFileExW(src, dst, 0x1)

看看如何atomicfile.atomic_rename()在 Windows 上实现。

关于python - 为什么 os.rename() 在 Python 2.7 中引发异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13025313/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com