2016-08-16 12 views
0

このpython関数では、保存時にファイル番号が1つ増加します。 これはfilename1からfilename10まで正しく実行し、次にfilename11の代わりに111,1112,11113などにジャンプします。 どこが間違っていますか?数字による数字の増加、数字ではない

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) 

答えて

5

問題のあるラインはここにある:

filename = filename[:-1] + str(counter) 

あなたは文字を切り落とすと、カウンターを追加します。

filename8 -> filename + 9 
filename9 -> filename + 10 

、カウンタが1桁以上の場合に失敗します:これは、カウンタが一桁の場合にファイル名の素晴らしい作品

filename10 -> filename1 + 11 
filename111 -> filename11 + 12 

一つの解決策は、代わりに[:-1]をハードコーディングするのlen(str(counter))を使用することです。もう1つは、基本ファイル名を別々に保存することです。

関連する問題