"start"と "end"キーワードの間に関連するデータ(行x列)のみが表示されるテキストファイルがあります。下記参照。これらのデータサブセットを抽出できるコードを記述したいと思います。行が "start"とデータで始まり、それに続く "end"キーワードが続かない場合、そのデータは無視します。以下の私の例では、data1とdata3は関連していますが、data2は "start"と "end"キーワードで囲まれていないためNOTです。Pythonのテキストデータファイルからデータサブセットを抽出する方法
start
data1 (matrix of data) /relevant because data1 is enclosed by "start" and "end"
end
start
data2 (matrix of data) /not relevant because there is no "end"
.
start
data3 (matrix of data) /relevant for same reason as for data1
end
.
.
and so on
私は私で始まると考えていた:
with open(file_path,'r') as file:
text = file.readlines()
start_indexes = []
end_indexes = []
for i, line in enumerate(text):
if line.startswith('start'):
start_indexes.append(i)
elif line.startswith('end'):
end_indexes.append(i)
for i in range(len(start_indexes)):
for j in range(len(end_indexes)):
if (start_indexes[i] < end_indexes[j] < start_indexes[i+1]):
print(start_indexes[i],end_indexes[j])
上記のコードは私に開始行番号と関連するデータがある終了行番号の両方を提供します。ここで私は多少立ち往生しています。どのように関連するデータを引き出すのですか?以下の私の例では、data1、data3となります。私は問題に「正しい」方法で近づいていますか?私はパンダに頼るべきですか?もっと効率的で直接的な方法がありますか?
は常にエーテルライン形式です: 'スタート。データ; startまたはstart;データ;終わり?入力例の期待出力を投稿してください。 – wwii