pythonでカレントフォルダ以下の階層にあるすべてのファイルに対して、ファイル名の中の数字を3桁にゼロ埋めした形にリネームしようとしています。
import glob import os import re for i in glob.glob('**',recursive=True): f=os.path.splitext(i)[0] d=re.findall('(\d+?)',f) for j in d: jj="{0:03d}".format(int(j)) f=re.sub(str(j),jj,f) print(i) print(f,"\n")
のようなコードを考えたのですが、下記のような結果になり、上手く行かないところがあります。
置換された桁数が一定していないのですが、どのように指定してあげればよいでしょうか?
ファイル中には、何か所数字が含まれているか分からないので、for j in d:でループして、ヒットしたdを全て拾う形にしていますが、このループの中で置換をしているのが良くないような感じがするものの、どう直せば良いか分からず、困っています。
以下、結果です。
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・1.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第005章~長い休日・001
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・10.mp3
0000000000000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ0000006\第0000005章~長い休日・0000001000000000
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・2.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第005章~長い休日・002
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・3.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第005章~長い休日・003
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・4.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第005章~長い休日・004
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・5.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第00005章~長い休日・00005
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・6.mp3
00000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ00006\第005章~長い休日・00006
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・7.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第005章~長い休日・007
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・8.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第005章~長い休日・008
06いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ6\第5章~長い休日・9.mp3
000006いまさら翼といわれても~完全版オーディオブック〈古典部〉シリーズ006\第005章~長い休日・009
回答2件
あなたの回答
tips
プレビュー