Есть ли способ установить "placeholder" и отредактировать эту часть позже при создании текстового файла по строкам или мне нужно сделать строку в конце и отредактировать эту часть?
Я хотел бы подсчитать выбранные строки с константами, и если бы я дошел до конца своего файла, я бы хотел записать сумму списка CONSTANTS в заголовок файлов.
CONSTANTS = []
with open(FILENAME, 'w') as f:
f.write(str(sum(CONSTANTS))) # <--- this way its just zero
f.write('...'); CONSTANTS.append(1)
f.write('...'); CONSTANTS.append(1)
.
.
.
Надеюсь, вы поняли, что я имею в виду. Прошу прощения за мой английский.
РЕДАКТИРОВАТЬ:
* MATERIAL, NAME = ...
* USER MATERIAL, CONSTANTS = **SUM_CONSTANTS* # <--- sum of CONSTANTS
** # (In this case: 2)
*******************************************************
** SETTINGS
*******************************************************
**
11, 0, 0, 1, # <--- CONSTANTS.append(1)
**
*******************************************************
** ...
*******************************************************
**
8.88, 0.0001 # <--- CONSTANTS.append(1)
**
.
.
.
Это файл установки для моделирования. Просто для ваших интересов. Не знаю, нужна ли эта информация.
Вам не нужно сразу писать в файл. Сначала вы можете сохранить данные в памяти, а затем добавить заголовок:
data = []
data.append("string to write to the file")
# process CONSTANTS
data.insert(0, sum(CONSTANTS))
with open("file", "w") as f:
f.writelines(line + "\n" for line in map(str, data))
seek()
обратно в начало файла и перезаписывать там данные, но проблема будет заключаться в том, чтобы определить, сколько места изначально нужно «зарезервировать», так как вы не будете знать, сколько нужно. Есть способы справиться с этим, но, не зная намного больше о ситуации / контексте / ограничениях, трудно сказать, какие из них, если таковые имеются, подойдут.