Ответ 1
В python:
open('file.txt', 'w').close()
Или, альтернативно, если у вас уже открыт файл:
f = open('file.txt', 'r+')
f.truncate()
В С++ вы можете использовать что-то подобное.
У меня есть текстовый файл, который я хочу удалить в Python. Как это сделать?
В python:
open('file.txt', 'w').close()
Или, альтернативно, если у вас уже открыт файл:
f = open('file.txt', 'r+')
f.truncate()
В С++ вы можете использовать что-то подобное.
Не полный ответ на расширение ответа ondra
При использовании truncate()
(мой предпочтительный метод) убедитесь, что ваш курсор находится в нужном месте.
Когда новый файл открывается для чтения - open('FILE_NAME','r')
, он по умолчанию равен 0.
Но если вы проанализировали файл в своем коде, обязательно указывайте в начале файла снова i.e truncate(0)
По умолчанию truncate()
обрезает содержимое файла, начиная с текущей позиции cusror.
open("filename","w").close()
Вы должны перезаписать файл. В С++:
#include <fstream>
std::ofstream("test.txt", std::ios::out).close();
Назначение указателя на нуль внутри вашей программы просто избавится от этой ссылки на файл. Файл все еще есть. Я думаю, что функция remove()
в c stdio.h
- это то, что вы ищете там. Не уверен в Python.
От пользователя @jamylak альтернативной формой open("filename","w").close()
является
with open('filename.txt','w'): pass
Поскольку текстовые файлы являются последовательными, вы не можете напрямую стереть данные с них. Ваши варианты:
Посмотрите на функцию/метод seek
/truncate
для реализации любой из вышеперечисленных идей. Оба Python и C имеют эти функции.
Вы не можете "стереть" из файла на месте, если вам не нужно стирать конец. Либо будьте довольны перезаписью "пустого" значения, либо прочитайте части интересующего вас файла и напишите его в другой файл.
При использовании with open("myfile.txt", "r+") as my_file:
я получаю странные нули в myfile.txt
, тем более, что сначала читаю файл. Чтобы он работал, мне пришлось сначала изменить указатель my_file
на начало файла с помощью my_file.seek(0)
. Тогда я мог сделать my_file.truncate()
, чтобы очистить файл.