Я хотел бы найти строку в текстовом файле, который содержит строку «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()