前提・実現したいこと
Pythonでテキストファイルの分割を行おうとしております.
同一ファイル内に見出しとデータが複数入っている巨大なテキストファイルがあります.(数値の行数は一定ではない)
見出し
数値
数値
数値
見出し
数値
数値
見出し
数値
数値
数値
...
このファイルを一行ずつ読み込み,見出し行が出てきたらその見出しの名前でファイルを作成し,次の見出しが出てくるまでを1つのファイルとしようとしております.
発生している問題・エラーメッセージ
fo.write((line.strip())) ^ IndentationError: expected an indented block
該当のソースコード
Python
1# -*- coding: utf-8 -*- 2import os 3 4#検索文字列 5s = "PARTICLEID" 6 7#読み込み 8with open('StreamLine.txt', mode='rt', encoding='utf-8') as fi: 9 for line in fi: 10 if (s in (line)) == True: 11#ファイル名の整形 12 filename=line.replace('\n','') 13 filename=filename.replace('\r','') 14 outputfilename = filename +'.txt' 15#ファイル名でファイル作成 16 with open(outputfilename, mode='wt', encoding='utf-8') as fo: 17#書き出し 18 fo.write((line.strip()))
試したこと
該当行のインデントを増やし,with open(outputfilename, mode='wt', encoding='utf-8') as fo:の次までインデントを増やすと,PARTICLEID 1.txt(中身はPARTICLEID 1だけ)が出来ル用になります.
「変数lineに変数sの値が含まれていたらファイルを作成する・含まれていなければ何もしない.」
という条件分岐の後の文字列の柿田支部なので,ifが終わってforに戻っていることがうまく表現できていないのではないか,と考えています.
アドバイスの程よろしくお願いいたします.
補足情報(FW/ツールのバージョンなど)
Python3.7.0
回答2件
あなたの回答
tips
プレビュー