のPython 2.2以降:
import fnmatch
import os
list_of_files = []
for root, dirnames, filenames in os.walk('/path/to/folder'):
for filename in fnmatch.filter(filenames, '*.zip'):
matches.append(os.path.join(root, filename))
latest_file = max(list_of_files, key=os.path.getctime)
print latest_file
がそれを行うための良い方法はありますが、それは、のPython 3.5+必要があります。
import glob
list_of_files = glob.glob('/path/to/folder/**/*.zip', recursive=True)
latest_file = max(list_of_files, key=os.path.getctime)
print(latest_file)
glob.glob
のマニュアルを引用します:
recursiveがtrueの場合、パターン**
はすべてのファイルと0個以上のディレクトリとサブディレクトリと一致します。パターンの後にos.sepが続く場合、ディレクトリとサブディレクトリのみが一致します。
「すべてのフォルダ」*とはどういう意味ですか?すべてのすべてのように? –
例のように、5つのフォルダを持つ現在の作業ディレクトリがあり、各フォルダにはそれぞれ独自のファイルがあります。 – LearningEveryday
'os.listdir'はすべてのファイルとフォルダをリストし、再帰的に呼び出すことができます – PYA