sample.txt内の"name"から始まる行番号の1つ上に改行コードを入力するコードを作成しようとしています。
何度もコードを見直しているのですが何が間違っているのかわかりません。。。
Pythonに詳しい方ご教示いただけますと幸いです。
【sample.txt】
ooooooooo 1,702.9 136,543 0.01 14.1 96.8 .0 1f1w53wh73v43 name:sakana 1,322.5 7 188.92 10.9 93.9 6.7 b6usrg82hwsa3 name:panda 1222.5 7111 188.9211 10.9 93.9 6.7 b6usrg82hwsa3 name:kuma ooooooooo ooooooooo
【試したみたコード】 import re #行番号を取得 path = "sample.txt" with open(path, encoding='shift_jis') as fin: lines = fin.readlines() lines_strip = [line.strip() for line in lines] ModName = [line for line in lines_strip if 'name:' in line] RowNum = [i for i, line in enumerate(lines_strip) if 'name' in line] #取得した行番号の行に改行を入れる with open(path) as f: for line in RowNum: data = f.readlines() data.insert((line -1), '\n') with open(path, mode='w') as f: f.writelines(data)
【上記スクリプト実行結果】 >>> #何もなし txtファイルに改行は追加されてません。
【実現したい/期待する結果】※追記しました。(全ての数値の上に改行を入れたいと思っております。)
ooooooooo 1,702.9 136,543 0.01 14.1 96.8 .0 1f1w53wh73v43 name:sakana 1,322.5 7 188.92 10.9 93.9 6.7 b6usrg82hwsa3 name:panda 1222.5 7111 188.9211 10.9 93.9 6.7 b6usrg82hwsa3 name:kuma ooooooooo ooooooooo
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2020/11/12 11:36