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しやすいらしい。

 

よく読まれている記事

1

  現在5年目のエンジニアで26歳です。 今回は20代の現役エンジニアとして、自分も含め転職について考えている方に向けて20代エンジニア転職に完全特化したおすすめのサービスを3つ紹介していき ...

2

これからエンジニアになりたい、プログラミングを使えるようになりたいという方に向けて 山のようにあるプログラミングスクールの中から、特におすすめなスクールをタイプ別に逆引きで3つ紹介します。 &nbsp ...

3

みなさんはを使っていますでしょうか。   本記事を見ていただいているということは、   プログラミングの勉強でを使うことに興味がある、 もしくはこれから動画を購入したいけどどれを買 ...

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

© 2020 クラインの備忘壺