前提
Pythonにて、フォルダ内のファイル名を、(指定したフォルダ名)_連番に名前を変えるプログラムを書いています。
下記のエラーがでるのですが、何が間違っているのでしょうか。
・例えば(指定したフォルダ名)=aとした場合、a_1.jpg, a_3.jpg, a_10.jpg, a_21.jpgとなってほしいところ、a_1.jpg, a_10.jpg, a_21.jpg, a_3.jpg となる為、自然ソートを行いたいです。
・連番は0で埋めることなく1,2,3,4~11,12と表示予定です。
・pathlib.Pathのリストの為、natsortは使用できません
発生している問題
keyを用いて下記事象が自然ソートになるよう試しているのですが、なおりません。
・例えば(指定したフォルダ名)=aとした場合、a_1.jpg, a_3.jpg, a_10.jpg, a_21.jpgとなってほしいところ、a_1.jpg, a_10.jpg, a_21.jpg, a_3.jpg となる
該当のソースコード
keyを用いて試みた自然ソート(こちらを書き換えたいです)
Python
1import re 2 3def paths_sorted(file): 4 return sorted(file, key = lambda x: tuple(map(int, re.findall(r'\d+',str(x)))))
上記の関数を用いたコード
Python
1# enumerate : ディレクトリ内のファイル を enumerateで取得できる間fileに代入し続ける 2 for i, file in paths_sorted(enumerate(dir.glob("./*" + str(ext)))):
よろしくお願いします
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。