Как создавать,перемещать и удалять файлы в Python

Вступление 

Работа с файлами является базовым навыком для любого программиста. Файлы очень часто используются для сохранения данных приложения, файлов конфигурации, видео и изображений. Есть очень много случаев в программировании когда вам понадобится работать с файлами, по этому вам нужно разобраться как правильно манипулировать файлами. Самые популярные операции с файлами это создание, удаление, перемещение.
В этой статье будет сделан обзор работы с файлами в языке программирования Python. Встроенные методы делают обработку файлов очень простой, без необходимости написания большого количества кода. Как и со всеми задачами в программировании, существует много способов достижения одной цели при работе с файлами, но в этой статье описаны базовые и самые распространенные способы.

Создания файлов в Python

Режимы открытия файлов
Существует несколько режимов открытия файлов в Python. Выбирать режим нужно в зависимости от того как вы собираетесь использовать файл, или от того какие данные вы будете читать/записывать. Режим задается при открытии файла встроенным методом open(), его более детальное описание будет изложено ниже.
Давайте рассмотрим какие существуют режимы открытия файлов:

  • w : Открывает файл для записи и создает файл если он не существует
  • w+ : Открывает файл для записи и создает если он не существует. Но если файл уже существует, то перезаписывает его.
  • r: Открывает файл только для чтения.
  • rb: Открывает файл только для чтения в двоичном формате.
  • wb: Открывает файл для записи в двоичном формате
  • wb+: Открывает файл для чтения и записи в двоичном формате.
  • a: Открывает файл только для добавления в конец его содержимого
  • +: В общем, этот символ используется в комбинации с r, w, или a и значит что файл открыт для записи и чтения.


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

open()
Как и с большинством операций в Python, выполнение многих задач, связанных с файлами, делается очень просто. Например, создание файла в Python может выполняться в одной строке кода:

myFile = open("new.txt", "w+")

В примере выше, мы открыли файл «new.txt», для чтения и записи. В нашем случае файл не существует, и он будет автоматически создан.

Метод open() принимает много аргументов, но в большинстве случаев вам понадобятся эти два:
filename — Обязательный аргумент, для указания имени файла

mode — необязательный аргумент, для установления режима чтения.

Другие аргументы, которые тут не описываются, могут позволить конфигурировать буферизацию, кодировк, обработку символа новой строки. С более детальным описанием этих аргументов можно ознакомится в официальной документации https://docs.python.org/3.3/library/functions.html#open

close()
Когда вы открываете файлы вы должны удостоверится что они будут вовремя закрыты. Для выполнения операции закрытия файла используется метод close() или открытия файла с использованием команды with, которая автоматически закроет файл когда он окажется за пределами области видимости.

Если вы будете держать ваши файлы открытыми, это замедлить вашу программу и в некоторых случаях заблокирует чтения файла другими в других частях программы. Сборщик мусора Python может автоматически закрыть неиспользуемые файлы, но вам не стоит полагаться на это.
Повторный вызов метода close() никак не повлияет на состояние закрытого файла.
myFile.close()
Перемещения файлов в Python
Для того чтобы переместить файл в Python, нужно импортировать модули os и shutil, которые предоставляют возможность копировать, перемещать, и удалять файлы в Python. Эти два модули самодостаточны, но в большинстве случаев shutil имеет более удобный интерфейс.

import os 
import shutil
os.rename(‘/var/www/somepath/file.txt’, ‘/var/www/newpath/newfile.txt’)
shutil.move( ‘/var/www/somepath/file.txt’, ‘/var/www/newpath/newfile.txt’ )

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

Удаления файлов в Python

Как уже вы наверное догадались, это довольно просто удалить файл в Python используя метод remove() из модуля os. В примере нижы мы удалим файл, все что нужно сделать это передать его имя при вызове remove()

Заключение

В этой статье, мы показали очень простые примеры, того как создавать, перемещать и удалять файлы в Python с помощью встроенных методов open(), shutil.move() и os.remove(). А также ознакомились с режимами открытия файлов.