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

Что такое файловая система
Файловая система — это способ организации и хранения файлов на компьютере или другом устройстве. Она представляет собой структуру, которая позволяет пользователям создавать, сохранять, перемещать, копировать и удалять файлы и папки.
В файловой системе файлы и папки организованы в иерархическую структуру. Корневой уровень в этой иерархии обычно представляет собой диск или раздел на устройстве. На верхнем уровне находятся директории (папки) и файлы, а внутри каждой директории могут находиться другие директории и файлы.
Основные компоненты файловой системы
Основными компонентами файловой системы являются:
- Файлы: это именованные наборы данных, которые могут быть сохранены на устройстве. Файлы могут содержать текст, изображения, видео, аудио или другие типы данных.
- Директории (папки): это контейнеры для группировки файлов. Они позволяют структурировать файлы и создавать иерархию папок.
- Путь: это уникальный идентификатор для каждого файла или папки в файловой системе. Включает имя файла или папки и путь к ним в иерархической структуре.
- Разрешения: это права доступа, определяющие, кто может читать, записывать или выполнять файлы и папки в файловой системе.
- Файловые системы: это способы организации и управления файлами и папками на устройстве. Различные операционные системы используют разные файловые системы, такие как NTFS, FAT32 или ext4.
Работа с файловой системой в Python
Python предоставляет мощные и удобные инструменты для работы с файловой системой. С помощью встроенных модулей, таких как os и shutil, вы можете создавать, перемещать, копировать и удалять файлы и папки, а также получать информацию о файлах и папках.
Примеры операций, которые вы можете выполнять с помощью Python:
- Создание нового файла или папки.
- Открытие и чтение содержимого файла.
- Запись в файл.
- Перемещение или переименование файлов и папок.
- Копирование файлов и папок.
- Удаление файлов и папок.
Работа с файловой системой в Python позволяет автоматизировать рутинные задачи, связанные с управлением файлами, а также обрабатывать большие объемы данных. Знание основных концепций файловой системы и умение использовать соответствующие инструменты помогут вам стать более эффективным разработчиком в области обработки файлов и данных.
Python: основы и применение — 50 урок. Работа с файловой системой и файлами
Основные понятия файловой системы
Файловая система — основной компонент операционной системы, отвечающий за организацию и управление файлами и каталогами. Она предоставляет пользователю и программам интерфейс для работы с файлами, позволяет создавать, копировать, удалять и перемещать файлы, а также выполнять другие операции с данными.
В файловой системе используется древовидная структура, в которой файлы и каталоги организованы в иерархический порядок. Верхний уровень иерархии называется корневым каталогом, от которого отходят ветви с более низкими уровнями каталогов и файлов. Каждый каталог может содержать другие каталоги и файлы.
Основные понятия файловой системы:
- Файл: основная единица данных в файловой системе. Файлы могут содержать текст, изображения, звуковые файлы и другие типы данных;
- Каталог: специальный тип файла, который содержит информацию о других файлах и каталогах внутри него. Каталоги используются для организации файловой системы в иерархическую структуру;
- Путь: уникальная строка, которая указывает расположение файла или каталога в файловой системе. Путь состоит из имен каталогов и имени файла, разделенных специальным символом;
- Расширение файла: часть имени файла, которая указывает на тип или формат данных, хранящихся в файле. Расширение состоит из точки и последующих символов, например «.txt» или «.jpg»;
- Абсолютный путь: полный путь к файлу или каталогу, начиная от корневого каталога. Он указывает на конкретное местоположение файла или каталога в файловой системе;
- Относительный путь: путь к файлу или каталогу, относительно текущего местоположения. Он указывает на относительное расположение файла или каталога в файловой системе.
Примеры:
Рассмотрим пример: если у нас есть каталог «Documents» внутри корневого каталога, и в нем есть файл «report.txt», то абсолютный путь к этому файлу будет «/Documents/report.txt», а относительный путь от корневого каталога будет «Documents/report.txt».

Работа с директориями
Директории, также известные как папки, являются базовым понятием в файловой системе. Они используются для организации файлов в иерархическую структуру. В Python существуют много способов работать с директориями и выполнять операции, такие как создание, удаление, переименование, перемещение и изменение прав доступа.
Создание директории в Python можно выполнить с помощью функции os.mkdir() или os.makedirs(). Функция os.mkdir() создает только одну директорию, в то время как функция os.makedirs() может создавать целую иерархию поддиректорий.
Пример:
import os
# Создание единственной директории
os.mkdir('my_directory')
# Создание иерархии директорий
os.makedirs('my_directory/sub_directory')Удаление директории можно выполнить с помощью функции os.rmdir(). Однако, для удаления директории, которая содержит файлы или другие директории, следует использовать функцию shutil.rmtree().
Пример:
import os
import shutil
# Удаление единственной директории
os.rmdir('my_directory')
# Удаление иерархии директорий
shutil.rmtree('my_directory')Переименование директории можно выполнить с помощью функции os.rename().
Пример:
import os
# Переименование директории
os.rename('old_directory', 'new_directory')Перемещение директории в другую местоположение можно выполнить путем сочетания операций создания новой директории и перемещения файлов и поддиректорий в нее.
Изменение прав доступа к директории можно выполнить с помощью функции os.chmod().
Пример:
import os
# Изменение прав доступа для директории
os.chmod('my_directory', 0o777)Python предоставляет множество других функций и методов для работы с директориями. Некоторые из них включают получение списка файлов и поддиректорий, проверку существования директории, получение текущей директории и многое другое. Вы сможете обнаружить и использовать эти функции, когда познакомитесь с ними в ходе изучения работы с файловой системой в Python.
Работа с файлами
Работа с файлами является одной из основных задач в программировании. Часто требуется читать данные из файла, записывать данные в файл или изменять содержимое файла. Python предоставляет богатый набор инструментов для работы с файловой системой.
В языке Python файлы рассматриваются как последовательность байтов. Для работы с файлами используются специальные объекты — файловые объекты. Чтобы работать с файлами, необходимо открыть их с помощью функции open(). Функция open() возвращает файловый объект, который можно использовать для чтения, записи или изменения файла.
Открытие файла
Чтобы открыть файл, нужно указать его имя или путь в качестве аргумента для функции open(). Функция возвращает файловый объект, который можно присвоить переменной для дальнейшей работы с файлом. Например:
file = open("example.txt")
Если файл находится в другой директории, следует указать полный путь к файлу:
file = open("C:/example.txt")
Режимы открытия файла
При открытии файла можно указать режим, в котором должен быть открыт файл. Режимы открытия файла могут быть следующими:
- r — чтение файла (по умолчанию)
- w — запись в файл (если файл уже существует, содержимое будет перезаписано)
- a — добавление в файл (если файл уже существует, содержимое будет дописано в конец)
- x — создание нового файла для записи (вызывает ошибку, если файл уже существует)
Режим открытия файла можно указать вторым аргументом для функции open(). Например:
file = open("example.txt", "r")
Если режим не указан, файл будет открыт в режиме чтения по умолчанию.
Чтение файла
После открытия файла его содержимое можно прочитать с помощью метода read(). Метод read() возвращает содержимое файла в виде строки. Например:
file = open("example.txt")
content = file.read()
print(content)
Метод read() всегда возвращает полное содержимое файла. Если файл очень большой, может потребоваться много памяти для чтения файла целиком. В таком случае можно использовать методы readline() для чтения одной строки из файла или readlines() для чтения всех строк файла в список.
Запись в файл
Для записи данных в файл используется метод write(). Метод write() принимает строку в качестве аргумента и записывает эту строку в файл. Например:
file = open("example.txt", "w")
file.write("Hello, World!")
file.close()
При записи в файл с помощью метода write(), старое содержимое файла будет перезаписано новыми данными. Если нужно добавить данные в конец файла, следует открыть файл в режиме добавления a и использовать метод write(). Например:
file = open("example.txt", "a")
file.write("Hello, World!")
file.close()
Закрытие файла
После того, как файл был открыт и прочитан или записан, его следует закрыть с помощью метода close(). Закрытие файла освобождает ресурсы компьютера и позволяет другим программам или процессам получить доступ к файлу. Например:
file = open("example.txt")
content = file.read()
file.close()
Обязательно закрывайте файлы после их использования, чтобы избежать утечки ресурсов.

Чтение данных из файла
Одной из основных операций при работе с файловой системой в Python является чтение данных из файла. Чтение данных позволяет программе получить доступ к содержимому файлов, что является важной задачей при обработке информации и анализе данных.
Открытие файла
Для чтения данных из файла необходимо сначала открыть файл с помощью функции open(). Функция open() принимает два аргумента: имя файла и режим доступа.
Режим доступа определяет, каким образом будет открыт файл. Для чтения данных из файла используется режим доступа «r». Например, для открытия файла «data.txt» в режиме чтения необходимо выполнить следующую команду:
file = open("data.txt", "r")После выполнения этой команды переменная file будет содержать объект файла, который можно использовать для чтения данных.
Чтение данных
После открытия файла с помощью функции open() можно приступить к чтению данных. Для чтения данных из файла используются методы объекта файла, такие как read(), readline() и readlines().
- Метод read() позволяет прочитать весь файл целиком. Он возвращает строку, содержащую все данные из файла.
- Метод readline() позволяет прочитать одну строку из файла. Каждый вызов метода readline() возвращает следующую строку из файла.
- Метод readlines() позволяет прочитать все строки из файла и вернуть их в виде списка строк.
Например, чтобы прочитать весь файл «data.txt» можно выполнить следующую команду:
data = file.read()После выполнения этой команды переменная data будет содержать все данные из файла «data.txt» в виде строки.
Закрытие файла
После чтения данных из файла необходимо закрыть файл с помощью метода close() объекта файла. Закрытие файла важно для освобождения ресурсов и предотвращения возможных ошибок.
file.close()После выполнения этой команды файл будет закрыт и нельзя будет больше использовать объект файла для доступа к данным.
Запись данных в файл
При работе с файловой системой в Python нередко возникает необходимость сохранить данные в файл. Для этого используется операция записи данных в файл. Процесс записи данных в файл можно разделить на следующие шаги:
- Открытие файла
- Запись данных в файл
- Закрытие файла
Открытие файла
Перед началом записи данных в файл, необходимо его открыть. Для этого используется функция open(). Функция принимает два аргумента: имя файла и режим открытия.
Режимы открытия файла могут быть следующими:
- ‘r’ — открытие файла только для чтения (по умолчанию)
- ‘w’ — открытие файла только для записи, существующий файл будет перезаписан
- ‘a’ — открытие файла для добавления данных в конец, новые данные будут добавлены после старых
- ‘x’ — открытие файла только для записи, если файл уже существует, будет вызвано исключение
Пример использования функции open():
file = open('example.txt', 'w')Запись данных в файл
После открытия файла можно приступить к записи данных. Для этого используется метод write(), который вызывается у открытого файла.
Пример записи строки в файл:
file.write('Hello, world!')Пример записи нескольких строк в файл:
file.write('Line 1
')
file.write('Line 2
')
file.write('Line 3
')Закрытие файла
После записи данных в файл, необходимо его закрыть. Для этого используется метод close(), который вызывается у открытого файла.
Пример закрытия файла:
file.close()Корректное закрытие файла очень важно, так как открытые файлы могут привести к неожиданному поведению программы или потере данных. Поэтому всегда следует закрывать файлы после их использования.
Переименование и перемещение файлов и директорий
В языке программирования Python существуют различные методы для работы с файловой системой. Одной из таких задач может быть переименование и перемещение файлов и директорий.
Для переименования файла или директории в Python используется функция os.rename(). Она принимает два аргумента: старое имя и новое имя. Например, чтобы переименовать файл «old.txt» в «new.txt», нужно вызвать функцию следующим образом:
import os
os.rename("old.txt", "new.txt")
Перемещение файла или директории в Python также можно выполнить с помощью функции os.rename(). Для этого необходимо указать новый путь вместе с новым именем файла или директории. Например, чтобы переместить файл «file.txt» из текущей директории в папку «folder», нужно вызвать функцию следующим образом:
import os
os.rename("file.txt", "folder/file.txt")
Для того чтобы переместить директорию целиком, включая все ее содержимое, можно использовать функцию shutil.move(). Она принимает два аргумента: исходный путь и путь для перемещения. Например, чтобы переместить директорию «dir» из текущей директории в папку «newdir», нужно вызвать функцию следующим образом:
import shutil
shutil.move("dir", "newdir/dir")
Работа с файлами в Python. Чтение и запись данных
Удаление файлов и директорий
Удаление файлов и директорий – одна из важных операций при работе с файловой системой в Python. Удаление файла или папки может потребоваться, когда они уже не нужны, содержат устаревшие данные или просто занимают лишнее место на диске.
Python предоставляет несколько способов для удаления файлов и директорий. Рассмотрим основные из них:
1. Удаление файла
Для удаления файла в Python используется функция os.remove(). Она принимает путь к файлу в качестве аргумента и удаляет файл по указанному пути. Пример использования:
import os
os.remove("path/to/file.txt")
2. Удаление директории
Для удаления пустой директории в Python используется функция os.rmdir(). Она принимает путь к директории в качестве аргумента и удаляет ее, если она пуста. Пример использования:
import os
os.rmdir("path/to/directory")
Если директория содержит файлы или другие поддиректории, то функция os.rmdir() вызовет ошибку. Для удаления директории с ее содержимым следует использовать функцию shutil.rmtree(). Она удаляет директорию со всем ее содержимым (включая вложенные файлы и директории). Пример использования:
import shutil
shutil.rmtree("path/to/directory")
3. Проверка существования файла или директории
Перед удалением файла или директории лучше проверить, существует ли она. Для этого можно использовать функцию os.path.exists(). Она принимает путь к файлу или директории в качестве аргумента и возвращает True, если объект с таким путем существует, и False в противном случае. Пример использования:
import os
if os.path.exists("path/to/file.txt"):
os.remove("path/to/file.txt")
Таким образом, при удалении файлов и директорий в Python необходимо использовать соответствующие функции, такие как os.remove(), os.rmdir() и shutil.rmtree(). Также рекомендуется предварительно проверить существование объектов перед удалением с помощью функции os.path.exists().
Корректное закрытие файлов
При работе с файлами в Python необходимо учитывать не только процесс открытия и чтения/записи данных, но и корректное закрытие файлов. Корректное закрытие файлов важно, так как это позволяет освободить ресурсы, которые были выделены для работы с файлом, и предотвращает возможные ошибки при дальнейшей обработке данных.
Для закрытия файла в Python используется метод close(). Этот метод должен быть вызван после окончания работы с файлом.
Пример использования метода close()
Допустим, у нас есть файл «example.txt», который мы хотим прочитать:
file = open("example.txt", "r")
data = file.read()
file.close()В данном примере мы открываем файл «example.txt» в режиме чтения (режим «r»), считываем данные с помощью метода read() и затем закрываем файл с помощью метода close().
Для чего нужно закрывать файлы?
Закрытие файлов является важной практикой при работе с файловой системой в Python по нескольким причинам:
- Освобождение ресурсов: При открытии файла в оперативной памяти выделяются ресурсы, которые затем нужно освободить. Если файл не будет закрыт, то эти ресурсы останутся занятыми, что может привести к непредсказуемому поведению программы или даже к ошибкам.
- Гарантия сохранения изменений: При работе с файлом в режиме записи (например, «w» или «a»), внесенные изменения не будут сохранены до момента закрытия файла. Поэтому корректное закрытие файла гарантирует, что все изменения будут записаны на диск.
Важно отметить, что в некоторых случаях файл может быть автоматически закрыт без явного вызова метода close(). Например, при использовании оператора with:
with open("example.txt", "r") as file:
data = file.read()В этом случае после выполнения блока кода файл будет автоматически закрыт, что является удобным и безопасным вариантом.
Заключение
Корректное закрытие файлов является важной практикой при работе с файловой системой в Python. Это позволяет освободить ресурсы, предотвратить возможные ошибки и гарантировать сохранение изменений. Метод close() используется для явного закрытия файла, хотя в некоторых случаях файл может быть закрыт автоматически.



