Python プログラミング

Pythonでディレクトリ配下のファイル一覧を取得し0パディング無しでも番号順に並び替える

Pythonであるディレクトリ配下のファイル一覧を取得していい感じに並び替えたい時で

0パディングもしていない以下のようなファイルを対象とする時

 

  • ./data/hoge-1.txt
  • ./data/hoge-12.txt
  • ./data/hoge-5.txt
  • ./data/hoge-22.txt

 

正規表現を使って以下で対応可能

 

[/] python
import glob
import re
# file一覧取得
files = glob.glob('./data/hoge-*.pkl')
# 正規表現でsorted
p = re.compile(r'\d+')
sorted_files = sorted(files, key=lambda s: int(p.search(s).group()))

 

うまくlambda式を使うとsortしやすいらしい。

 

-Python, プログラミング
-,

© 2020 クラインの備忘壺