Как сбросить файл после выполнения в python

пусть моя программа будет:

for i in range (2):
    with open('test.txt', 'a') as f:
        f.write('something \n')

Если я открою свой тестовый файл, который изначально пуст, он отобразит

test
test

Если я сделаю второе выполнение, он отобразит:

test
test
test
test

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

test
test
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
0
0
33
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Не открывайте файл в режиме добавления, если вы не хотите добавлять.

for i in range(2):
    with open('test.txt', 'w') as f:
        f.write('something\n')

В этом случае содержимое файла будет состоять из одной строки с something\n.

Но на самом деле не открывайте файл при каждой итерации цикла.

with open('test.txt', 'w') as f:
    for i in range(2):
        f.write('something \n')

Теперь содержимое файла будет состоять из двух строк с something\n.

я хочу добавить в цикл, но только для одного выполнения программы. Когда я делаю новое выполнение, я хочу, чтобы оно стирало старое добавление, а не добавляло снова.

haswellrefresh 02.04.2022 13:23

@haswellrefresh Прочитайте мой ответ еще раз

Tomalak 02.04.2022 13:27

хорошо, это работает, я попробую на работе, потому что у меня гораздо больший цикл, в котором я открываю 3 файла.

haswellrefresh 02.04.2022 17:07

@haswellrefresh Вы можете открывать много файлов в одном блоке with: stackoverflow.com/questions/4617034/…

Tomalak 02.04.2022 17:14

Интересно, спасибо, я мог бы попробовать в понедельник. Я пишу только в 1 файл, 2 других я читаю, чтобы извлечь значение, которое я храню в переменных.

haswellrefresh 02.04.2022 19:25

Хорошо, я проверил, с помощью «w» он, к сожалению, удаляет все. Я пробовал открывать файл вне цикла, но тот же pb перезаписывался. Решение состоит в том, чтобы сделать оператор if, если строки, которые я не хочу добавлять снова, существуют, я прерываю цикл, если не добавляю.

haswellrefresh 04.04.2022 09:58
Ответ принят как подходящий

Хорошо, я проверил, с помощью «w» он, к сожалению, удаляет все. Я пробовал открывать файл вне цикла, но тот же pb перезаписывался. Решение состоит в том, чтобы сделать оператор if, если строки, которые я не хочу добавлять снова, существуют, я прерываю цикл, если не добавляю.

Как сейчас написано, ваш ответ неясен. Пожалуйста, редактировать, чтобы добавить дополнительную информацию, которая поможет другим понять, как это относится к заданному вопросу. Дополнительную информацию о том, как писать хорошие ответы, можно найти в справочном центре.

Community 05.04.2022 10:14

Другие вопросы по теме