タスク
毎回新しい.s2kファイルをSap2000プログラムにインポートしてSAP2000プログラムを実行するプログラムをPythonで作成しています。その後、データをエクスポートすることにより、前回の実行結果から新しいファイルが生成されます。
このファイルは、任意の単語と数字を含む約1,500行です。(より良い理解のために、これを参照してください:http: //pastebin.com/8ptYacJz、これは私が扱っているファイルです。)
ファイル内の1つの番号を置き換える必要があります。その番号は800行目の真ん中のどこかにあります。
質問
1つの番号を置き換えるために、ファイルの800行目の中央に移動する効率的な方法を知っている人はいますか?
私が試したこと
同じ番号のインスタンスが複数存在する可能性があるため、正規表現は機能しませんでした。
そこで、ファイルをテンプレート化し、変更する番号をテンプレートパラメータとして毎回新しいファイルを作成するという解決策を思いつきました。
この解決策は機能しますが、その人は、ファイルポインタを800行目まで下に移動し、次に行の中央に移動して番号を置き換えることができると主張しています。
これは、ファイルバッファを1行に移動し、シークしようとしたときに最初に戻るという問題に対して私が持っている唯一のコードです。
import sys
import os
#open file
f = open("output.$2k")
#this will go to line 883 in text file
count = 0;
while count < 883:
line = f.readline()
count = count+1
#this would seek over to middle of file DOESN'T WORK
f.seek(0,0)
line = f.readline()
print(line)
f.close()