任务
我正在用python编写一个运行SAP2000程序的程序,每次将一个新的.s2k文件导入到Sap2000程序中,然后通过导出数据的方式从上次运行的结果生成一个新文件。
该文件大约有 1,500 行,包含任意单词和数字。(为了更好地理解,请参阅:http: //pastebin.com/8ptYacJz,这是我正在处理的文件。)
我需要替换文件中的一个数字。这个数字在第 800 行的中间。
问题
有谁知道一种有效的方法来移动到文件中第 800 行的中间以替换一个数字?
我试过的
正则表达式不起作用,因为可能有多个相同数字的实例。
所以我想出了模板化文件的解决方案,每次写入一个新文件,将要更改的数字作为模板参数。
该解决方案确实有效,但该人坚持认为我可以将文件指针向下移动到第 800 行,然后移到行的中间以替换数字。
这是我解决问题的唯一代码,它将文件缓冲区带到一行,然后在我尝试查找时回到开头。
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()