我一直在努力将文件夹中所有文件的名称更改为具有相同的名称和数字计数。我对python还是很陌生的&我一直在编写这段代码。每次调试之后,我都会得到另一个错误,现在我被困住了。
我有372个文件在这个文件夹,我需要重命名为"prcp_2016_###“计数号码为000 - 372。
这是我迄今为止一直在使用的代码..。
for count, f in enumerate(os.listdir()):
f_name, f_ext = os.path.splitext(f)
f_name = "prcp_2016_" + str(count)
new_name = f'{f_name}{f_ext}'
os.rename(f, new_name)
我一直收到的错误消息是:
FileExistsError:当文件已经存在时,WinError 183无法创建该文件:“prcp_2016_10.asc‘->’prcp_2016_2.asc”
如果有人能帮我什么忙,我和我的研究生教育将永远感激:)
发布于 2022-10-04 22:06:50
尝试这样做,在重命名文件之前,它将检查文件是否已经存在。
for count, f in enumerate(os.listdir()):
f_name, f_ext = os.path.splitext(f)
f_name = "prcp_2016_" + str(count)
new_name = f'{f_name}{f_ext}'
if not os.path.exists(new_name):
os.rename(f, new_name)
编辑:如果您想看到@JustLearning建议的异常,实际上应该打印异常名称如下:
for count, f in enumerate(os.listdir()):
f_name, f_ext = os.path.splitext(f)
f_name = "prcp_2016_" + str(count)
new_name = f'{f_name}{f_ext}'
try:
os.rename(f, new_name)
except Exception as e:
print("Renaming didn't work because " + str(e))
发布于 2022-10-04 22:09:53
您可以将任何异常处理为:
for count, f in enumerate(os.listdir()):
f_name, f_ext = os.path.splitext(f)
f_name = "prcp_2016_" + str(count)
new_name = f'{f_name}{f_ext}'
try:
os.rename(f, new_name)
except:
print("Renaming didn't work because _____. Moving on...")
continue
在print
语句中的空白应该对您和您的研究生院教育有帮助:)
也就是说,最好是处理例外情况,而不是任由它们发生。上面的代码是通用的,可以跳过不起作用的重命名,但是您应该试着理解它们不工作的原因。例如,它会在循环中得到重复的名称吗?
https://stackoverflow.com/questions/73954038
复制相似问题