@staticmethod def latest_file_folder(glob_data): ”’ 作成日が最新のフォルダもしくはファイルを取得します。 ”’ return max(glob_data, key=os.path.getctime)
提供された latest_file_folder メソッドの実装は、指定されたリスト(glob_data)内のフォルダやファイルの中で、最も作成日時が新しいものを取得しようとしています。しかし、この実装ではファイルパスを直接渡しており、そのため max() 関数は文字列の一覧の中で最も先頭の文字(ASCIIコードでの順序)が大きいものを返そうとします。
具体的には、max(glob_data, key=os.path.getctime) は、リスト glob_data の中で最大のファイルパスを取得するために、ファイルパスの文字列を比較しています。そのため、文字列としては '20240209080008' が '20240208080006' よりも大きいと判断され、 '20240209080008' が最大のファイルパスとして返されます。
これでは意図通りの動作にはなりません。max() 関数の代わりに、ファイルの作成日時を取得して比較する必要があります。そのためには、glob_data リスト内の各ファイルパスに対して、os.path.getctime() を使用して作成日時を取得する必要があります。
以下は修正例です:
python
@staticmethod def latest_file_folder(glob_data): ''' 作成日が最新のフォルダもしくはファイルを取得します。 ''' if not glob_data: return None return max(glob_data, key=os.path.getctime)
この修正により、glob_data リスト内のファイルパスの中で最も新しい作成日時を持つファイルパスが返されます。提供されたディレクトリ内の最新のファイルを取得するためには、この修正を適用してください。

ディスカッション
コメント一覧
まだ、コメントがありません