2

私はパイソン初心者なので、優しくしてください..

glob を使用して、特定のパターンに一致するファイルのリストを収集しています

for name in glob.glob('/home/myfiles/*_customer_records_2323_*.zip')
print '\t', name

出力は次のようになります

/home/myfiles/20130110_customer_records_2323_something.zip
/home/myfiles/20130102_customer_records_2323_something.zip
/home/myfiles/20130101_customer_records_2323_something.zip
/home/myfiles/20130103_customer_records_2323_something.zip
/home/myfiles/20130104_customer_records_2323_something.zip
/home/myfiles/20130105_customer_records_2323_something.zip
/home/myfiles/20130107_customer_records_2323_something.zip
/home/myfiles/20130106_customer_records_2323_something.zip

しかし、出力を最新の 5 ファイルのみにしたいと思います (タイムスタンプまたは os によって報告された作成時間によって)

/home/myfiles/20130106_customer_records_2323_something.zip
/home/myfiles/20130107_customer_records_2323_something.zip
/home/myfiles/20130108_customer_records_2323_something.zip
/home/myfiles/20130109_customer_records_2323_something.zip
/home/myfiles/20130110_customer_records_2323_something.zip

そして、これを達成する方法についてのアイデアはありますか? (リストを並べ替えて、最新の 5 つのファイルのみを含めますか?)

更新 グロブからの出力がデフォルトでソートされない方法を示すように変更されました

4

2 に答える 2

4

リスト スライスを使用します。

for name in glob.glob('/home/myfiles/*_customer_records_2323_*.zip')[-5:]:
    print '\t', name

編集:glob出力が自動的にソートされない場合は、次のことを試してください。

for name in sorted(glob.glob('/home/myfiles/*_customer_records_2323_*.zip'))[-5:]:
    print '\t', name
于 2013-02-07T02:33:13.730 に答える
1

出力をスライスします。

glob.glob('/home/myfiles/*_customer_records_2323_*.zip')[-5:]

globの出力がソートされることが保証されているかどうかはわかりません。

于 2013-02-07T02:33:08.443 に答える