Подтвердить что ты не робот

Как удалить содержимое файла текстового файла в Python?

У меня есть текстовый файл, который я хочу удалить в Python. Как это сделать?

4b9b3361

Ответ 1

В python:

open('file.txt', 'w').close()

Или, альтернативно, если у вас уже открыт файл:

f = open('file.txt', 'r+')
f.truncate()

В С++ вы можете использовать что-то подобное.

Ответ 2

Не полный ответ на расширение ответа ondra

При использовании truncate() (мой предпочтительный метод) убедитесь, что ваш курсор находится в нужном месте. Когда новый файл открывается для чтения - open('FILE_NAME','r'), он по умолчанию равен 0. Но если вы проанализировали файл в своем коде, обязательно указывайте в начале файла снова i.e truncate(0) По умолчанию truncate() обрезает содержимое файла, начиная с текущей позиции cusror.

Простой пример

Ответ 3

open("filename","w").close()

Ответ 4

Вы должны перезаписать файл. В С++:

#include <fstream>

std::ofstream("test.txt", std::ios::out).close();

Ответ 5

Назначение указателя на нуль внутри вашей программы просто избавится от этой ссылки на файл. Файл все еще есть. Я думаю, что функция remove() в c stdio.h - это то, что вы ищете там. Не уверен в Python.

Ответ 6

От пользователя @jamylak альтернативной формой open("filename","w").close() является

with open('filename.txt','w'): pass

Ответ 7

Поскольку текстовые файлы являются последовательными, вы не можете напрямую стереть данные с них. Ваши варианты:

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

Посмотрите на функцию/метод seek/truncate для реализации любой из вышеперечисленных идей. Оба Python и C имеют эти функции.

Ответ 8

Вы не можете "стереть" из файла на месте, если вам не нужно стирать конец. Либо будьте довольны перезаписью "пустого" значения, либо прочитайте части интересующего вас файла и напишите его в другой файл.

Ответ 9

При использовании with open("myfile.txt", "r+") as my_file: я получаю странные нули в myfile.txt, тем более, что сначала читаю файл. Чтобы он работал, мне пришлось сначала изменить указатель my_file на начало файла с помощью my_file.seek(0). Тогда я мог сделать my_file.truncate(), чтобы очистить файл.