我想在包含字符串“SECTION=C-BEAM”的文本文件中搜索一行,并通过从第一行读取模式替换“下一行”中的前 13 个字符(模式以粗体突出显示(参见示例下面 - 从第一行读取 1.558 并将其替换为第二行中的 1.558/2 =0.779。从第一行读取的数字始终位于字符串“H_”和“H_0”之间。
示例输入:
SECTION, ELSET=DIORH_1_558H_0_76W_241_1, SECTION=C-BEAM, MAT=XYZ;
0., 1, 2, 3, 4, 5
输出如下:
SECTION, ELSET=DIORH_1_558H_0_76W_241_1, SECTION=C-BEAM, MAT=XYZ;
0.779, 1, 2, 3, 4, 5
这是我到目前为止所尝试的。
file_in = open(test_input, 'rb')
file_out = open(test_output, 'wb')
lines = file_in.readlines()
print ("Total no. of lines to process: ", len(lines))
for i in range(len(lines)):
if lines.startswith("SECTION") and "SECTION=C-BEAM" in lines:
start_index = lines.find("H_")+1
end_index = lines.find("H_0")
x = lines[start_index:end_index]/2.0
print (x)
lines[i+1]= lines[i+1].replace(" 0.",x)+lines[i+1][13:]
file_out.write(lines[i])
file_in.close()
file_out.close()