Напишите файл и отредактируйте «заполнитель», если достигнут конец файла

1

Есть ли способ установить "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)
 **
 .
 .
 .

Это файл установки для моделирования. Просто для ваших интересов. Не знаю, нужна ли эта информация.

  • 1
    Вы можете seek() обратно в начало файла и перезаписывать там данные, но проблема будет заключаться в том, чтобы определить, сколько места изначально нужно «зарезервировать», так как вы не будете знать, сколько нужно. Есть способы справиться с этим, но, не зная намного больше о ситуации / контексте / ограничениях, трудно сказать, какие из них, если таковые имеются, подойдут.
  • 0
    @martineau я отредактировал свой вопрос. не знаю, полезно ли это или нет. : / В любом случае спасибо за ваш быстрый ответ! в этом случае: вы думаете, seek () является хорошим решением?
Показать ещё 1 комментарий
Теги:
python-3.x

1 ответ

0

Вам не нужно сразу писать в файл. Сначала вы можете сохранить данные в памяти, а затем добавить заголовок:

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))

Ещё вопросы

Сообщество Overcoder
Наверх
Меню