前提・実現したいこと
ここに質問の内容を詳しく書いてください。
Pythonについて、以前も同じような質問をさせていただいたのですが、
少し変換前のデータ形式が変わってしまったため、再度ご協力いただけると幸いです。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
【やりたいことについて】
\refから始まる数行(ここでは6行)がひとつのブロック(1データ)となってます。
やりたいことは,\dtrcから始まる行にある日付を拾い、以下のようにしたいです。
(※日付部分は、予め昇順にソートされたデータとなります。)
(例)
\ref
\aaaaaa
\bbbbbb
\cccccc
\dddddd
\dtrc 2017-08-25
↓
\ref
\elic.id 20170825.0001
\aaaaaa
\bbbbbb
\cccccc
\dddddd
\dtrc 2017-08-25
\refから始まる最初の行の次に、\elic.idを挿入し、
そのあとに\dtrcにある日付(ハイフンをとる)、
そのあとにピリオド、そして4桁の連番(0001から開始)。
そして,連番は日付部分が変わったら,また0001から振り直す。
[サンプルデータ(変換前)]
\ref
\aaaaaa
\bbbbbb
\cccccc
\dddddd
\dtrc 2017-08-25 #日付が同じ場合、連番付与(→この場合は、0001)
\ref
\eeeeee
\ffffff
\gggggg
\hhhhhh
\dtrc 2017-08-25 #日付が同じ場合、連番付与(→この場合は、0002)
\ref
\iiiiii
\jjjjjj
\kkkkkk
\llllll
\dtrc 2017-08-26 #日付が異なる場合、0001をセット
↓↓↓
[サンプルデータ(変換後)]
\ref
\elic.id 20170825.0001
\aaaaaa
\bbbbbb
\cccccc
\dddddd
\dtrc 2017-08-25
\ref
\elic.id 20170825.0002
\eeeeee
\ffffff
\gggggg
\hhhhhh
\dtrc 2017-08-25
\ref
\elic.id 20170826.0001
\iiiiii
\jjjjjj
\kkkkkk
\llllll
\dtrc 2017-08-26
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
発生している問題・エラーメッセージ
該当のソースコード
試したこと
アルゴリズム上もそうですが、Python初心者のため、どのように表現したらよいか分からず、
まだ試せておりません。。
頭で考えているイメージ
(より効率のよい方法があるかもしれませんが、、)
↓
①元データからあらかじめ、\dtrcから始まる行を取得し、\elic.idから始まるデータ準備をする。
(このタイミングでデータ変換も可能か?
取得できたレコード数は、②で使えそうか?)
②元データをfor文で回し、\refの次の行に、
\elic.idから始まるデータを順次差し込むことは可能か?
補足情報(FW/ツールのバージョンなど)
実行環境は、Python3となります。
よろしくお願いいたします。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/02/19 22:21