前提・実現したいこと
sample.txtファイル内に存在する以下の要素を抽出したいです
抽出したい内容
●SELECT aaaaa bbbbb ccccc from ttttt where sssss or mmmmm (*1行で)
●0.2
※Module: Basesceduleは不変ですが、値は変更されるのでわからない前提となります。
sample.txt1(中身)
Module: Basescedule
SELECT aaaaa bbbbb ccccc from ttttt
where sssss or mmmmm
0.2 6 0.04 3.E+03 .0 .0
compile:seccase
SELECT aaaaa bbbbb ccccc from ttttt
0.3 6 0.04 3.E+03 .0 .0
Module: recpuc
SELECT ddddd fffff from ttttt
0.4 7 0.04 3.E+03 .0 .0
'module Basescedule'を範囲として文字列を抽出する方法を試したのですが、うまくいきません。
import re filepath = 'C:\Users\Desktop\新しいフォルダー\sample.txt' def extract_text_in_file(filepath, pattern_prev, pattern_next): extracted_text_array = [] pattern = pattern_prev + '(.*)' + pattern_next with open(filepath, "r", encoding="utf-8") as f: lines = f.readlines() for line in lines: tmp_extracted_text_array = re.findall(pattern, line) extracted_text_array.extend(tmp_extracted_text_array) return extracted_text_array pattern_prev = 'Module: Basescedule:' pattern_next = '' extracted_text_array = extract_text_in_file(filepath, pattern_prev, pattern_next) for extracted_text in extracted_text_array: print(extracted_text)
#質問
・そもそも文字列を抽出するロジックが間違っているのでしょうか?
・指定した文字列を含む行を検索し、それ以下の行を取り出す良い方法は何かありますでしょうか?
文字列の抽出方法にお詳しい方、アドバイスをよろしくお願いします。
回答1件
あなたの回答
tips
プレビュー