フォルダを指定して指定したフォルダ内の全てのファイルから数行を抽出しテキストファイルに出力
Python で指定したフォルダ内の全てのファイルから数行を抽出しテキストファイルに出力する方法を紹介します。 ### 必要なライブラリ * `os` : ファイルとディレクトリの操作 * `glob` : パターンマッチングによるファイルの検索 * `open` : ファイルの読み書き ### コード ```python import os import glob import openpyxl def ファイルから数行を抽出する(フォルダパス, 出力ファイルパス, 抽出行数): """ 指定したフォルダ内の全てのファイルから数行を抽出しテキストファイルに出力する。 Args: フォルダパス (str): 抽出するファイルが存在するフォルダのパス 出力ファイルパス (str): 抽出したテキストを出力するファイルのパス 抽出行数 (int): 抽出する行数 """ # 指定したフォルダ内の全てのファイルを取得 files = glob.glob(os.path.join(フォルダパス, '*')) # 出力ファイルを開く with open(出力ファイルパス, 'w', encoding='utf-8') as f: # 各ファイルから抽出行数を読み込んで出力 for file in files: with open(file, 'r', encoding='utf-8') as file_obj: lines = file_obj.readlines() if len(lines) >= 抽出行数: f.write(f"{file}\n") f.write(''.join(lines[:抽出行数]) + '\n\n') # 使用例 フォルダパス = '/path/to/フォルダ' 出力ファイルパス = '/path/to/出力ファイル.txt' 抽出行数 = 10 ファイルから数行を抽出する(フォルダパス, 出力ファイルパス, 抽出行数) ``` ### 注意点 * このコードは指定したフォルダ内の全てのファイルから抽出行数を読み込んで出力します。ファイルの内容が大きい場合、メモリが不足する可能性があります。 * このコードはテキストファイルのみを対象としています。Excelファイルや他の形式のファイルを対象にしたい場合は、`openpyxl` などのライブラリを使用する必要があります。 * このコードは指定したフォルダ内の全てのファイルを読み込むため、ファイルの数が多くなると処理時間が長くなります。