Pythonでテキストファイルから特定の文字列を抽出する方法について解説します。この記事では、テキストファイルから任意の文字列を検索し抽出する方法と、特定行を抽出する方法について紹介します。
ファイルから文字列を抽出する
Pythonでテキストファイルから特定の文字列を抽出する基本的なコードは以下の通りです。
import os
dir_path = r'C:\\ *--- 任意のディレクトリ ---* '
file_name = 'file1.txt'
file_path = os.path.join(dir_path, file_name)
with open(file_path) as f:
lines = f.readlines()
lines_strip = [line.strip() for line in lines]
list_Apple = [line_s for line_s in lines_strip if 'Apple' in line_s]
list_Apple_value = [item.split()[1] for item in list_Apple]
このコードでは、まずos.path.join
を使用してディレクトリのパスとファイル名からファイルのパスを生成しています。次にwith open
を使用してファイルを開き、readlines
メソッドでファイルの中身を行ごとのリストとして取得しています。
その後、strip
メソッドを使用して各行の改行コードを削除し、内包表記を使用して新たなリストを生成しています。このリストから、特定の文字列(この例では”Apple”)を含む行を抽出し、さらにその行から特定の部分(この例では2つ目の要素)を抽出しています。
特定行を抽出する
また、テキストファイルから特定の行を抽出する方法もあります。以下のコードは、特定の文字列を含む行の行番号を取得する例です。
import os
dir_path = r'C:\\ *--- 任意のディレクトリ ---* '
file_name = 'file1.txt'
file_path = os.path.join(dir_path, file_name)
with open(file_path) as f:
lines = f.readlines()
lines_strip = [line.strip() for line in lines]
list_rownum = [i for i, line_s in enumerate(lines_strip) if 'Apple' in line_s]
このコードでは、enumerate
関数を使用してリストの各要素とそのインデックスを取得し、特定の文字列を含む行のインデックス(つまり行番号)を抽出しています。
以上がPythonでテキストファイルから特定の文字列を抽出する方法と、特定行を抽出する方法の基本的な説明です。これらの方法を組み合わせることで、さまざまなテキスト処理を行うことが可能です。.