Вступление
Работа с файлами - это фундаментальный навык начального уровня для любого программиста. Они очень часто используются для хранения данных приложений, пользовательских конфигураций, видео, изображений и т. Д. Существует бесчисленное множество вариантов использования файлов в программных приложениях, поэтому было бы разумно глубоко ознакомиться с задачами манипулирование файлами. Эти задачи могут включать (среди прочего) создание, удаление и перемещение файлов.
В этой статье мы рассмотрим процесс работы с файлами с помощью языка программирования Python. Встроенные методы, которые он предлагает, позволяют очень легко обрабатывать файлы, используя относительно небольшой объем кода. Как и во всем в программировании, есть много способов достичь той же цели, когда дело касается файлов, но в этой статье мы будем придерживаться основ и покажем наиболее распространенные способы выполнения этих действий.
Создание файлов в Python
Режимы открытия файлов
Есть режимы, в которых вы можете открыть файл в Python. Выбранный вами
режим зависит от того, как вы планируете использовать файл или какие
данные вы будете читать (записывать) из (в) файл. Этот режим указывается
при открытии файла с помощью встроенного open()
, более подробно
описанного в следующем разделе.
Давайте посмотрим на некоторые из возможных комбинаций файловых режимов:
w
: открывает файл для записи и создает новый файл, если он еще не существует. Если файл существует, он перезаписывает его.w+
: открывает файл для записи, но также для чтения и создания, если он не существует. Если файл уже существует, он перезаписывает его.r
: открывает файл только для чтения.rb
: открывает файл для чтения в двоичном формате.wb
: открывает файл для записи в двоичном формате.wb+
: открывает файл для записи и чтения в двоичном формате.a
: открывает файл для добавления в конец файла.+
: Обычно этот символ используется рядом сr
,w
илиa
и означает как запись, так и чтение.
Если режим файла не указан, по умолчанию будет использоваться r
При выборе режима внимательно обдумайте ваш вариант использования и то, в течение какого времени он будет использоваться весь файл.
открыто()
Как и практически все в Python, выполнение многих задач, связанных с файлами, очень просто. Например, создать файл на Python можно одной строкой кода:
myFile = open("new.txt", "w+")
В приведенном выше примере мы открыли файл new.txt для чтения и записи. В нашем случае, поскольку файл еще не существует, он создается автоматически.
Метод open()
принимает множество аргументов, хотя в большинстве
случаев вы будете использовать только эти два:
- filename - обязательное поле для указания имени файла, который мы хотим открыть / создать. В нашем примере "new.txt"
- mode - необязательный аргумент для указания режима открытия файла, в нашем примере "w +"
Вы можете опустить второй аргумент, и в этом случае он будет принят
Python как r
.
Другие аргументы, не перечисленные здесь, позволяют настраивать
буферизацию, кодирование, обработку новой строки и т. Д. Для получения
дополнительной информации об этих аргументах ознакомьтесь с официальной
документацией
Python по
методу open
Закрыть()
Когда вы открываете файл, вам всегда нужно убедиться, что вы его
закрыли. Это можно сделать с помощью close()
файлового объекта или
открыть его с with
ключевого слова with, предоставляемого Python,
которое автоматически закрывает его при выходе из области видимости.
После закрытия файла он больше не будет доступен для чтения или записи в
вашем коде, если вы не откроете его резервную копию.
Сохранение ваших файлов открытыми приведет к израсходованию системных ресурсов, замедлит работу вашей программы и в некоторых случаях предотвратит использование файла другим кодом. Сборка мусора Python позволяет автоматически закрывать файлы, когда они больше не используются, но вам не следует полагаться на это.
Если файл уже закрыт, close()
для него никак не повлияет:
myFile.close()
myFile.close() # Doesn't affect the file
Перемещение файлов в Python
Чтобы переместить файл в Python, нам нужно будет импортировать os
и
shutil
которые предоставляют нам возможность копировать, перемещать и
удалять файлы в Python. Оба этих модуля предоставляют методы для этого,
хотя во многих случаях shutil
имеет более удобные методы.
import os
import shutil
# Move a file by renaming it's path
os.rename('/Users/billy/d1/xfile.txt', '/Users/billy/d2/xfile.txt')
# Move a file from the directory d1 to d2
shutil.move('/Users/billy/d1/xfile.txt', '/Users/billy/d2/xfile.txt')
Имейте в виду, что целевой каталог должен существовать, чтобы этот пример работал. После того, как вы настроили каталоги «d1» и «d2» (или просто изменили пример в соответствии со структурой каталогов), запустите код. Теперь проверьте каталог «d2», и вы должны увидеть xfile.txt, если он сейчас присутствует в этом каталоге.
Довольно просто, правда?
Удаление файлов в Python
Как вы, наверное, догадались, удалить файл в Python довольно просто с
помощью метода remove()
из модуля os
В нашем примере ниже мы удалим «xfile.txt». Все, что нам нужно сделать,
это вызвать метод remove()
указав путь к файлу, который мы хотим
удалить:
import os
# Delete xfile.txt
os.remove('/Users/billy/d2/xfile.txt')
Теперь снова проверьте каталог "d2", и файл xfile.txt будет готов. Просто как тот!
Заключение
В этой статье мы показали очень простые примеры того, как создавать,
перемещать и удалять файлы в Python с помощью встроенных функций, таких
как open()
, shutil.move()
и os.remove()
. Кроме того, мы
представили простое введение и объяснение файловых режимов Python.