Я хотел бы найти лучшее решение для достижения следующих трех этапов:Обновление строки в текстовом файле в определенном месте
- строк читать в данной строке
- строки обновления
- написать обновленные строки назад
Ниже приведен код, который работает, но мне интересно, есть ли какие-либо более простые (простые) решения?
new='99999'
f=open('C:/Users/th/Dropbox/com/MS1Ctt-P-temp.INP','r+')
lines=f.readlines()
#the row number we want to update is given, so just load the content
x = lines[95]
print(x)
f.close()
#replace
f1=open('C:/Users/th/Dropbox/com/MS1Ctt-P-temp.INP')
con = f1.read()
print con
con1 = con.replace(x[2:8],new) #only certain columns in this row needs to be updated
print con1
f1.close()
#write
f2 = open('C:/Users/th/Dropbox/com/MS1Ctt-P-temp.INP', 'w')
f2.write(con1)
f2.close()
Спасибо! UPDATE: получить представление от jtmoulia на этот раз становится легче
def replace_line(file_name, line_num, col_s, col_e, text):
lines = open(file_name, 'r').readlines()
temp=lines[line_num]
temp = temp.replace(temp[col_s:col_e],text)
lines[line_num]=temp
out = open(file_name, 'w')
out.writelines(lines)
out.close()
@ C2H5OH спасибо за редактирование, этанол – jtmoulia