在这个python函数中,保存时文件编号增加1。 它正确地从filename1到filename10,然后跳转到111,1112,11111等,而不是继续使用filename11。 它出了什么问题?
for f in notepad.getFiles():
if os.path.isfile(f[0]):
notepad.activateBufferID(f[1])
if notepad.getCurrentBufferID() == f[1]:
notepad.save()
else:
notepad.activateBufferID(f[1])
if notepad.getCurrentBufferID() == f[1]:
counter = 0
filename = f[0]
while os.path.isfile(NewFileDir + filename + NewFileExt):
counter += 1
filename = filename[:-1] + str(counter)
notepad.saveAs(NewFileDir + filename + NewFileExt)
答案 0 :(得分:5)
违规行在这里:
filename = filename[:-1] + str(counter)
您修剪一个字符并添加计数器。当计数器为单个数字时,这适用于文件名:
filename8 -> filename + 9
filename9 -> filename + 10
但是当计数器超过一位数时失败:
filename10 -> filename1 + 11
filename111 -> filename11 + 12
一种解决方案是使用len(str(counter))
代替硬编码[:-1]
。另一种方法是分别存储基本文件名,而不是在你去的时候改变它。