logo

Python – ディレクトリ内のファイルをリストする

Python でファイルを操作しているときに、ディレクトリ内のすべてのファイルを取得する方法で問題が発生することがあります。この記事では、さまざまな方法について説明します。 ディレクトリ内のすべてのファイル名を一覧表示する方法 Pythonで。

ファイル操作の実行は、プログラマーにとって必須のスキルです。 Python を使用してファイル操作を学習すると、ファイルの管理、ファイルとプログラムの統合、実際のプログラムの構築などに役立ちます。特定のディレクトリに存在するすべてのファイルを一覧表示するという最も基本的な概念について説明します。



このチュートリアルでは、ディレクトリ内のファイル名と詳細を一覧表示する 2 つのモジュールとそれぞれの機能について説明します。

Python のディレクトリとは何ですか?

ディレクトリ (フォルダーとも呼ばれます) は、ファイルまたは複数のフォルダーを保存および検索するための、コンピューターのファイル システム内の単位組織構造です。 Python は、ディレクトリの内容を一覧表示するためのいくつかの API をサポートするようになりました。たとえば、Path.iterdir、os.scandir、os.walk、Path.rglob、または os.listdir 関数を使用できます。

使用中のディレクトリ: GFG



ディレクトリ内のファイル

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

ディレクトリ内のすべてのファイルを一覧表示するには、複数の方法があります。この記事では、ディレクトリ内のファイルのリストを取得する以下のモジュールとその機能について説明します。ディレクトリ内のファイルのリストを確認する合計 5 つの方法を例とともに説明します。

  1. 使用する OSモジュール
  2. 使用する グロブモジュール

Python の Os モジュールを使用してディレクトリ内のファイルを一覧表示する

これらの 3 つの方法を使用できます。 OSモジュール 、ディレクトリ内のファイルのリストを取得します。



  • os.listdir() 方法
  • os.walk() 方法
  • os.scandir() 方法

os.listdir() メソッドを使用してファイルのリストを取得する

os.listdir() このメソッドは、指定されたディレクトリ内のすべてのファイルとディレクトリのリストを取得します。デフォルトでは、これは現在のディレクトリです。フォルダーの最初のレベルを超えると、os.listdir() はファイルやフォルダーを返しません。

構文 : os.listdir(パス)

パラメーター :

  • パス : ディレクトリのパス

戻り値の型 : 指定されたパス内のすべてのファイルとディレクトリのリストを返します。

例 1: ディレクトリ内のすべてのファイルのリストを取得する

この例では、オペレーティング システムと対話するために os モジュールがインポートされます。 listdir 関数は、指定されたパス (C://Users//Vanshi//Desktop//gfg) 内のすべてのファイルとディレクトリのリストを取得するために使用されます。結果は印刷され、指定された場所に存在するファイルとディレクトリの名前が表示されます。

Python3




# import OS module> import> os> # Get the list of all files and directories> path>=> ' C://Users//Vanshi//Desktop//gfg '> dir_list>=> os.listdir(path)> print>(>'Files and directories in ''>, path,>'' :'>)> # prints all files> print>(dir_list)>

Python プログラミングの例

>

>

出力:

例 2: すべてのファイルを取得し、フォルダーは取得しない

この例では、Python プログラムはユーザーにフォルダー パスの入力を要求し、そのディレクトリ内のファイルを一覧表示して出力します。これにより、ディレクトリの操作に os モジュールを利用し、取得したリストからファイルをフィルター処理します。

Python3




import> os> print>(>'Python Program to print list the files in a directory.'>)> Direc>=> input>(r>'Enter the path of the folder: '>)> print>(f>'Files in the directory: {Direc}'>)> files>=> os.listdir(Direc)> # Filtering only the files.> files>=> [f>for> f>in> files>if> os.path.isfile(Direc>+>'/'>+>f)]> print>(>*>files, sep>=>' '>)>

Javaの型変換とキャスト

>

>

例 3: ディレクトリから「.txt」ファイルのみを取得する

この例では、Python スクリプトは os モジュールを利用して、現在のディレクトリ内のファイルを反復処理します。 .txt で終わるファイル名のみを選択的に出力し、ディレクトリ内に存在するテキスト ファイルを効果的にリストします。

Python3




# import OS> import> os> for> x>in> os.listdir():> >if> x.endswith(>'.txt'>):> ># Prints only text file present in My Folder> >print>(x)>

>

>

出力:

os.walk() メソッドを使用してディレクトリ ツリー内のファイルにアクセスする

OS.walk() ディレクトリツリーにファイル名を生成します。この関数は、ツリー構造内のファイルのリストを返します。このメソッドは、ツリー内のすべてのディレクトリをループします。

構文: os.walk(トップ、トップダウン、エラー時、フォローリンク )

パラメーター:

  • 上: これは、コンポーネントのファイルとフォルダーの名前を取得する最上位ディレクトリです。
  • トップダウン: True に設定すると、ディレクトリが上から下にスキャンされるように指定します。このパラメータが False の場合、ディレクトリは上から下に検査されます。
  • エラー時: エラーが発生した場合はエラーハンドラーを提供します
  • フォローリンク : True に設定すると、システム リンクによって参照されるフォルダーにアクセスします。

戻る: ディレクトリおよびそのサブディレクトリ内のすべてのファイルとフォルダの名前を返します。

例: ディレクトリ内の「.txt」ファイルのみを取得します

この例では、Python スクリプトは os モジュールを使用して、指定されたディレクトリ (C://Users//Vanshi//Desktop//gfg) とそのサブディレクトリ内のファイルをスキャンします。拡張子 .txt を持つファイルの名前を識別して出力し、リスト変数に必要なテキスト ファイルを設定します。

Python3

Javaオブジェクトからのjson




# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # to store files in a list> list> => []> # dirs=directories> for> (root, dirs,>file>)>in> os.walk(path):> >for> f>in> file>:> >if> '.txt'> in> f:> >print>(f)>

>

>

出力:

os.scandir() メソッドを使用してディレクトリ内のファイルを一覧表示する

os.scandir() os.listdir() 関数の効率的なバージョンです。その後 Python によってリリースされ、Python 3.5 以降でサポートされています。

構文: os.scandir(パス)

パラメータ:

  • パス- ディレクトリのパス。

戻り値の型: os.DirEntry オブジェクトのイテレータを返します。

例: ディレクトリ内のすべてのファイルとディレクトリを一覧表示します。

この例では、Python スクリプトは os モジュールを利用して、指定されたパス (C://Users//Vanshi//Desktop//gfg) 内のファイルとディレクトリを一覧表示します。 os.scandir() を使用して、ディレクトリ内のエントリを表す os.DirEntry オブジェクトのイテレータを取得します。

Python3




# import OS module> import> os> # This is my path> path>=> ' C://Users//Vanshi//Desktop//gfg '> # Scan the directory and get> # an iterator of os.DirEntry objects> # corresponding to entries in it> # using os.scandir() method> obj>=> os.scandir()> # List all files and directories in the specified path> print>(>'Files and Directories in '% s':'> %> path)> for> entry>in> obj:> >if> entry.is_dir()>or> entry.is_file():> >print>(entry.name)>

>

スプリング ブートの注釈
>

出力:

Python の glob モジュールを使用してディレクトリ内のファイルを一覧表示する

グロブ モジュール 指定されたパターンに一致するファイル/パス名を取得します。以下は、glob モジュールを使用してディレクトリ内のファイルを一覧表示する方法です。

  • グロブ() 方法
  • iglob() 方法

glob() メソッドを使用してディレクトリ内のすべてのファイルを取得する

グロブ 、ワイルドカード (*、?、[範囲]) を使用できます。 パスの検索をより簡単かつ便利にします。

構文: glob.glob(パス名, *, recursive=False)

パラメーター:

  • パス名 : ディレクトリのパスまたは一致するパターン。
  • 再帰的 (オプション): ブール値パラメータ (デフォルト値は に設定されています) 間違い ) 検索を再帰的にするかどうか、つまりサブディレクトリを含めるかどうかを示します。

戻り値:

  • 一致するファイル パスのリスト

例: glob() メソッドを使用した Python ファイルのマッチングと印刷

Python3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg'> # Using '*' pattern> print>(>' Named with wildcard *:'>)> for> files>in> glob.glob(path>+> '*'>):> >print>(files)> # Using '?' pattern> print>(>' Named with wildcard ?:'>)> for> files>in> glob.glob(path>+> '?.txt'>):> >print>(files)> # Using [0-9] pattern> print>(>' Named with wildcard ranges:'>)> for> files>in> glob.glob(path>+> '/*[0-9].*'>):> >print>(files)>

>

>

出力:

Pythonのsは何ですか

iglob() メソッドを使用してディレクトリ内のファイルを一覧表示する

iglob() recursive パラメーターが True に設定されている場合、メソッドを使用してファイル名を再帰的に出力できます。これは glob() メソッドより効率的であるため、大きなディレクトリに使用されます。

構文: glob.iglob(パス名, *, recursive=False)

パラメータ:

  • パス名 = ディレクトリのパス。
  • 再帰的 (オプション)= ブール値パラメータ (デフォルト値は次のように設定されています) 間違い ) 検索を再帰的にするかどうか、つまりサブディレクトリを含めるかどうかを示します。

戻り値: 一致するファイルパスの反復子

例: ディレクトリ内の指定されたパターンに一致するパスを出力します。

この例では、Python スクリプトは glob モジュールを利用して、指定されたパターン (C:UsersVanshiDesktopgfg***.txt) に一致するパスを検索して出力します。 glob.iglob() を使用してイテレータを返します。このイテレータは、指定されたディレクトリとそのサブディレクトリに存在するすべてのテキスト ファイルのパスを出力するために使用されます。

Python3




import> glob> # This is my path> path>=> 'C:UsersVanshiDesktopgfg***.txt'> # It returns an iterator which will> # be printed simultaneously.> print>(>' Using glob.iglob()'>)> # Prints all types of txt files present in a Path> for> file> in> glob.iglob(path, recursive>=>True>):> >print>(>file>)>

>

>

出力:

これらは、ディレクトリ内のファイルとディレクトリの詳細を取得するために使用できる 5 つの方法です。 Python には、ディレクトリ内に存在するファイルを知るために使用できる複数の組み込みメソッドが用意されています。このチュートリアルでは、os モジュールと glob モジュールを使用してファイル リストを取得する方法を理解するための簡単な方法を例とともに示しました。

同様の内容:

  • 拡張子が付いたディレクトリ内のファイルを一覧表示する
  • Python を使用してディレクトリ内の特定の種類のファイルをすべて一覧表示する
  • Python でディレクトリとファイルをリストする
  • ディレクトリ内のファイルのリストをサイズ付きで取得する
  • Python でのファイル処理