Я использую Python 3.7 для чтения содержимого файла и обновления значения переменной BUILD_ID, увеличивая его на единицу.
Это прекрасно работает, если я использую только одну строку в файле, который содержит только BUILD_ID (пока я пробовал это с функцией re.sub ()), но для того, чтобы использовать его для файла, содержащего несколько строк, он не заменяет, а добавляет в него обновленную строку в конце файла или в последней строке. Или, если я использую build_file.seek (0), он заменяет строку в первой строке.
Любая идея, как я могу обновить значение переменной в файле, который может быть в любой строке файла?
Например, файл сакэ имеет следующее содержимое:
MINOR_VERSION
MAJOR_VERSION
BUILD_ID = 1
TEST
Код приведен ниже:
def update_build(file_name):
with open(file_name,'r+') as build_file:
text= build_file.readlines()
for line in text:
print(line)
if(line.find('BUILD_ID')>-1):
#print('BUILD_ID found')
variable_name,variable_value=line.split('=') #separating name and value
value_int= int(variable_value)
value_int=value_int+1
value_str= str(value_int)
updated_build= variable_name+'='+value_str
replaced_text= line.replace(line,updated_build)
print(updated_build)
build_file.write(replaced_text)
break
return