2017-09-24 8 views
1

作成された年の日までに多くのファイルが番号付けされています。例えば:Pythonでのデータファイルの並べ替え

  • rate_2017_04.txt
  • rate_2017_09.txt
  • rate_2017_45.txt
  • rate_2017_99.txt
  • rate_2017_146.txt
  • rate_2017_267.txt

最後の数字はその年の日を示します。

  • rate_2017_04.txt
  • rate_2017_09.txt
  • rate_2017_146.txt
  • :私は

    rate_file_list = sorted(glob.glob('rate_201*.txt')) 
    

    を使用してしかし、私はのようなものを取得していますことを実行して、それらのファイルをソートしようとしています

  • rate_2017_267.txt
  • rate_2017_45.txt
  • rate_ 2017_99.txt

sorted()にこれを解決する方法はありますか?

+0

これは、Linuxのコマンドラインで1行で行うことができます。迅速でシンプルな – RomanPerekhrest

答えて

1

sorted()は、反復可能性の各要素から比較キーを抽出するために使用される関数であるkey引数を受け入れます。あなたはそのためのdatetime.strptime()を使用することができます。

from datetime import datetime 

def keyfunc(value): 
    return datetime.strptime(value, "rate_%Y_%j.txt") 

rate_file_list = sorted(glob.glob('rate_201*.txt'), key=keyfunc) 

今の値は、あなたが望むものである日付、と比較されます。

関連する問題