Python 3でディレクトリ内の拡張子が.txtのすべてのファイルを見つける

PYTHON3 チュートリアル

Pythonで特定のディレクトリ内の.txtファイルを検索する方法

Pythonを使用して特定のディレクトリ内のファイルを操作する際には、様々な方法があります。ここでは、主にosモジュールとpathlibモジュールを用いた方法を紹介します。これらのモジュールを使用すると、ディレクトリの探索、ファイルのフィルタリング、情報の取得が簡単に行えます。

方法1: osモジュールを使用する

osモジュールはPythonの標準ライブラリの一部で、オペレーティングシステムとのやり取りを容易にします。ここではos.listdir()os.path.splitext()を使用して、特定のディレクトリ内の.txtファイルを検索します。

import os

# 検索するディレクトリのパス
directory = '/path/to/directory'

# ディレクトリ内のすべてのファイルをループ
for filename in os.listdir(directory):
    # ファイル名と拡張子を分割
    name, ext = os.path.splitext(filename)
    # 拡張子が.txtの場合のみ表示
    if ext == '.txt':
        print(f'Found text file: {filename}')

このコードは指定されたディレクトリ内で、拡張子が.txtのファイルのみを探し出し、それを画面に表示します。

方法2: pathlibモジュールを使用する

pathlibモジュールは、ファイルシステムのパスをオブジェクト指向で扱うためのモジュールです。こちらを使用すると、より直感的なコードでファイル操作が可能になります。

from pathlib import Path

# 検索するディレクトリのパス
directory = Path('/path/to/directory')

# ディレクトリ内の.txtファイルを検索
txt_files = directory.glob('*.txt')

# 検索結果を表示
for txt_file in txt_files:
    print(f'Found text file: {txt_file.name}')

このコードはPath.glob()メソッドを使用して、指定したパターンに一致するファイルを簡単に見つけることができます。

方法3: os.walk()を用いた再帰的な検索

ディレクトリがサブディレクトリを含む場合には、os.walk()を使用すると便利です。この関数はディレクトリのツリーをトップダウンで走査します。

import os

# 検索するディレクトリのパス
root_dir = '/path/to/directory'

# ディレクトリツリーを走査
for dirpath, dirnames, filenames in os.walk(root_dir):
    for filename in filenames:
        if filename.endswith('.txt'):
            print(f'Found text file: {os.path.join(dirpath, filename)}')

このスクリプトは、すべてのサブディレクトリを含め、指定したディレクトリ以下のすべての場所で.txtファイルを探します。

以上のいずれの方法も、Pythonで.txtファイルを効率的に検索するためのものです。使用するシナリオに応じて、最適な方法を選択してください。

購読
通知
0 Comments
Inline Feedbacks
View all comments