Python: ディレクトリ内のファイルを一覧表示する 5 つの方法

ニュース

ホームページホームページ / ニュース / Python: ディレクトリ内のファイルを一覧表示する 5 つの方法

May 28, 2023

Python: ディレクトリ内のファイルを一覧表示する 5 つの方法

ファイルおよびディレクトリ関連の操作は、ソフトウェア エンジニアの基本的なスキルです。 これは、Windows ファイル エクスプローラーで 1 つのファイルを別のフォルダーにコピーするだけではなく、その方法を理解することです。

ファイルおよびディレクトリ関連の操作は、ソフトウェア エンジニアの基本的なスキルです。 これは、Windows ファイル エクスプローラーで 1 つのファイルを別のフォルダーにコピーするだけではなく、ソフトウェア機能を使用して自動バッチ操作を実行する方法を理解することです。

これは大きな話題です。 今日は、特定のディレクトリにあるすべてのファイル名を一覧表示する方法という、1 つの特定の問題について詳しく説明します。 Python では、ディレクトリにはファイルとサブディレクトリのグループが含まれます。

Python ディレクトリ内のファイルを一覧表示してアクセスする 5 つの方法を紹介します。 これらの各方法は、さまざまなシナリオで使用されます。

Python ディレクトリ内のファイルを一覧表示する 1 つの方法は、Python の OS モジュールの os.listdir() メソッドを使用することです。

上記のコードは、現在のパスの下にあるすべてのファイルとディレクトリの名前を出力します。 別のパスに基づいて結果を出力したい場合は、os.listdir() 関数に引数を与えるだけです。

すべてのファイルを印刷したいだけの場合は、 os.path.isfile() が役に立ちます。

ディレクトリの場合は、os.path.isdir() という名前の関数もあります。

これはシンプルで便利ですが、大きなリストが返された場合はどうなるでしょうか? あるいは、特定の種類のファイルのみが必要な場合はどうなるでしょうか? 幸いなことに、Python には、より複雑なシナリオに対応するためのオプションが豊富に用意されています。

Python の詳細Python でのリストのマージ

OS モジュールの別のメソッドである walk() を使用して、Python ディレクトリ内のファイルを一覧表示することもできます。

その名前が示すように、ディレクトリ ツリーを層ごとに「ウォークスルー」できます。 os.walk() メソッドを呼び出すと、ジェネレーターが返されます。 next() メソッドを呼び出して次の値を生成するたびに、1 層深く進みます。 結果は、(dirpath、dirnames、filenames) の 3 つの項目を含むタプルになります。

たとえば、2 番目のレイヤーのすべてのフォルダーの名前を取得する場合、コードは次のようになります。

すべてのファイルの名前を取得する代わりに、特定の種類のファイルの名前を取得したい場合があります。 glob モジュールは検索に正規表現を追加できるため、このタイプの操作の味方になります。

上記のコードは、「log」で終わるファイル名をリストします。

Python 3.4 からは pathlib というモジュールがあり、これも便利です。 リスト理解のトリックを利用すると、1 行のコードを使用して、現在のパスのすべてのファイル名を生成できます。

驚くべきことに、Path() には glob() 関数も付属しています。 Python ファイルの先頭に glob モジュールを明示的にインポートする必要はありません。

Python5 Pandas Groupby の詳細 Python で知っておくべきトリック

古典的な os.listdir() 関数は直感的ですが、大量のファイルを含む大きなディレクトリの場合は効率的ではありません。 したがって、Python 3.5 では、新しい同様の関数 os.scandir() が導入されました。

はい、おそらくご想像どおりでしょう。 この関数は、すべての名前のリストの代わりにジェネレーターを返します。 必要に応じて名前を取得できます。 すべての名前を一度に取得する必要がない状況では、より効率的です。