シーケンシャルASCIIファイルを読み取り、それらに変更を加えるコードを書いています。
これまでのところ、私はファイルを読み取り、文字列を置き換えることができました。例えば:
import os
import re
parent_folder_path = '.'
for eachFile in os.listdir(parent_folder_path):
if eachFile.endswith('.sos'):
newfilePath = parent_folder_path+'/'+eachFile
file = open(newfilePath, 'r')
sos = file.read()
file.close()
sos = sos.replace('...KOORDSYS -1', '...KOORDSYS 22')
file = open(newfilePath, 'w')
file.write(str(sos))
file.close()
しかし、特定の位置(つまり文字列)を見つけて、その後ろに次の3つの文字列を挿入したいと思います。
.DEF
..DRIFTSMERKING T26
..SPENNING T16
私が使用しているシーケンシャルASCIIファイルの構造は次のようになります。
.HODE
..TEGNSETT ISO8859-1
..TRANSPAR
...KOORDSYS 22
...ORIGO-NØ 0 0
...ENHET 0.01
..OMRÅDE
...MIN-NØ 6593309 455619
...MAX-NØ 6729987 588458
..SOSI-VERSJON 4.0
..SOSI-NIVÅ 2
..DAT0 20130313
私がやりたいのはまさにこれです:
searchline = '..DATO'
lines = f.readlines()
i = lines.index(searchline)
lines.insert(i, '.DEF')
lines.insert(i+1, '..DRIFTSMERKING T26')
lines.insert(i+2, '..SPENNING T16')