Pythonで、pathlib.Pathで取得した、以下のような、数字が入ったファイル名を、
辞書順ではなく自然順に並び替えるプログラムを作成しています。
ファイル名 ) name_1.jpg, name_10.jpg, name_2.jpg
今回はnatsortが使用できないため、keyを用いたソートを試みています。
その際に、関数を実装中に以下のエラーメッセージが発生しました。
「tuple object isnot callable」
実現したいこと
エラーが発生しないようにしたいです。
検索し、エラーの意味は理解し解決を試みたのですが、初心者なため解決方法わからず教えていただきたいです。
発生している問題・エラーメッセージ
tuple object isnot callable
該当のソースコード
Python
1 2def paths_sorted(name): #本体コードのname(ファイル名の.jpgより前)を代入 3 return sorted(name, key=parts_key(name)) 4 5def paths_key(x): 6 a=tuple(map(int, re.findall(r'¥d+', str(x)))) 7 return a 8
補足情報(FW/ツールのバージョンなど)
lambda関数を用いると簡潔に実行することができたのですが、今回は分かりやすいよう分解して行いたいと思っています。
lambdaを使用し実行できた関数↓
Python
1 2def paths_sorted(name): 3 return sorted(name, key=lambda x : tuple(map(int, re.findall(r'¥d+', str(x))))) 4
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/06 05:53