Очистка файла

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

Способы

Очистить файл в Python 3 можно следующими способами:

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

Рассмотрим эти варианты подробно.

При открытии

Когда файл открывается на запись, то указатель текущего положения в документе может быть расположен в начале или в конце документа. Если указатель в конце, то данные будут дописываться. Нас же интересует вариант, когда указатель расположен в начале.

f = open('test.txt', 'w')
f.close()

Здесь w – указывает режим открытия файла на запись в текстовом режиме с размещением указателя в начале. После выполнения этого кода, если существовал указанный файл, то содержимое его очистится. Если его не было, то создастся новый пустой.

Перед закрытием, можно было добавить информацию. Она будет записана с начала файла, а не дописана в конец.

f = open('test.txt', 'w')
f.write('something')
f.close()

Если надо записывать данные в бинарный файл, то следует использовать режим “wb”.

Если же наоборот, нам нужно добавить информацию в конец файла. При этом старые данные чтобы остались. В этом случае к режиму следует добавить символ +. Режим открытия текстового документа будет “w+”, а бинарного “wb+”.

Дополнительную информацию по режимам открытия можно получить в отдельной статье на нашем сайте.

Перемещение указателя

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

f = open('test.txt', 'w+')
f.seek(0)
f.close()

В этом примере открытие сделали специально в режиме дозаписи. После закрытия, даже если в файле были данные, они удалятся.

Вот еще пример, здесь мы записываем данные, потом переносим указатель в начало. После этого еще раз производим запись. В итоге, в конце работы, в файле будет только последняя сделанная запись. Те данные, которые были внесены вначале, благополучно удалятся.

f = open('test.txt', 'w+')
f.write('something string')
f.seek(0)
f.write('new string')
f.close()

Средствами ОС

Для очистки с помощью средств операционной системы воспользуемся стандартной библиотекой os. Вначале её надо подключить с помощью инструкции import os.

На linux должно пройти следующим образом.

import os
os.system(r' >file.txt')

Можно воспользоваться командами cp или cat. Вот пример решения с помощью cat.

os.system(r'cat /dev/null>file.txt')

Если код исполняется на Windows, то решение может быть таким:

os.system(r'nul>file.txt')