628.95K
Category: programmingprogramming

Файлы и каталоги в языке «Python». Тема 4

1.

ТЕМА 4: ФАЙЛЫ
И КАТАЛОГИ
В ЯЗЫКЕ
«PYTHON»

2.

Открытие, создание
и закрытие файла
ЗА ОТКРЫТИЕ ФАЙЛОВ в языке «Python» отвечает функция open(), которая
имеет формат:
open(<путь к файлу>, <режим доступа>, <кодировка>)
Путь к файлу может быть:
– абсолютным (полный путь к
файлу);
– относительным (название
файла
с
расширением,
если файл находится в одной
папке с приложением «Python»).
****символ «слеш» является
специальным
символом,
следовательно, при указании
пути этот символ необходимо
удваивать.
Режим доступа, представляет
собой
строку,
в
которой
указывается,
для
чего
открывается файл.
Кодировка, при работе в текстовом режиме
кодировку указывать необязательно, однако,
работая в бинарном режиме, без ее указания
программа будет выдавать ошибку. Получить
перечень всех возможных кодировок:
>>> import encodings.aliases
>>> print (encodings.aliases.aliases)

3.

Открытие, создание
и закрытие файла
Возможны следующие режимы доступа:

4.

Открытие, создание
и закрытие файла
Применяя режимы доступа:
МОЖНО СОЗДАТЬ ФАЙЛ, применяя функцию open(), если
указать абсолютный путь к создаваемому файлу, то он и будет создан
по указанному адресу, а при условии указания только названия
файла и его расширения, то файл будет размещен в папке с
приложением «Python»:

5.

Открытие, создание
и закрытие файла
После того, как файл был открыт, появляется возможность
узнать о нем следующую информацию:
1) функция file.closed выводит True
если файл был закрыт:
2) функция file.mode выводит
режим доступа, с которым был
открыт файл:
3) функция file.name выводит имя
файла:

6.

Открытие, создание
и закрытие файла
«Python» автоматически закрывает файл, если файловый объект, к
которому он привязан, присваивается другому файлу.
Кроме того ЗАКРЫТЬ ФАЙЛ ВРУЧНУЮ позволяет функция close(),
при этом любая несохраненная информация будет потеряна:

7.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
1.
Метод
write()

позволяет
записать
или
последовательность
байтов
в
файл,
указанных
в
данный метод выводит количество записанных символов или байтов:
В результате выполнения
указанного программного кода
создается файл week.txt,
размещенный в папке с
приложением «Python», с
созданной записью
строку
параметре,

8.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
2. Метод writelines() – позволяет осуществить запись последовательности, указанной в
параметре, в файл, при этом, если все элементы последовательности являются строками, то файл
должен быть открыт в текстовом режиме, и если все элементы являются последовательностями
байтов, то файл соответственно должен быть открыт в бинарном режиме:

9.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
3.
Метод
writable()
в файл, выводя True,
в противном случае:

позволяет
выявить
если файл поддерживает
возможность
записи
запись, и False –

10.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
4. Метод read() – позволяет вывести данные из файла, при этом если файл открыт в текстовом
режиме, то выводится строка, а если в бинарном, то выводится последовательность байтов. В
случае, если параметр не указан, то выводится содержимое файла от текущей позиции указателя до
конца файла:
Если в качестве параметра указать число, то
за каждый вызов будет выводить указанное
количество символов или байтов.
При достижении конца файла будет
выведена пустая строка:

11.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
5. Метод readline() – осуществляет считывание из файла одну строку при каждом вызове, при
условии, если файл открыт в текстовом режиме, то выводится строка, а если в бинарном –
последовательность байтов. Выводимая строка включает символ перевода строки,
за исключением последней строки – если она не завершается символом перевода строки, то
данный символ добавлен не будет. При достижении конца файла выводится пустая строка:
Если в качестве параметра указано число, а
количество символов в строке меньше значения
указанного параметра, то будет считана только
одна строка, а не указанное количество
символов, а если количество символов в строке
превышает значение параметра, то будет
выведено указанное количество символов:

12.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
6. Метод readlines() – выполняет считывание всего содержимого файла в список, каждый элемент
которого будет содержать только одну строку, включая символ перевода строки. Исключением
является последняя строка – если она не завершается символом перевода строки, то символ
перевода строки добавлен не будет. Если файл открыт в текстовом режиме, то будет выполнен
вывод списка строк, а если в бинарном – список объектов типа bytes:

13.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
7. Метод __next__() – применяется для считывания только одной строки при каждом вызове. Если
файл открыт в текстовом режиме, то будет выведена строка, а если в бинарном, то
последовательность байтов. Как только будет достигнут конец файла программа выведет
исключение stopiteration:
Применяя рассматриваемый метод можно
осуществлять перебор файла построчно с
помощью оператора цикла for, который на
каждый итерации будет вызывать метод
__next__():

14.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
8. Метод truncate() позволяет обрезать файл до указанного в параметре количества символов при
работе в текстовом режиме, и до указанного в параметре количества байтов при работе в бинарном
режиме. Рассматриваемый метод выводит новый размер файла:

15.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
9. Метод tell() – выводит позицию указателя относительно начала файла в виде целого числа, при
этом символ перевода строки считается дополнительными байтами:

16.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
10. Метод seek(<смещение>, <позиция>) – выполняет установку указателя в позицию, имеющую
смещение, указанное в первом параметре относительно позиции, указанной во втором параметре.
При этом в параметре <позиция> могут быть указаны следующие атрибуты или значения:
1) io.SEEK_SET или 0 – начало файла (значение по умолчанию);
2) io.SEEK_CUR или 1 – текущая позиция указателя, здесь положительное значение смещения
вызывает перемещение к концу файла, отрицательное – к началу;
3) io.SEEK_END или 2 – конец файла.
Осуществить вывод значений указанных атрибутов можно следующим образом:

17.

Методы, применяемые
в работе с файлами
Открытие файла обеспечивает возможность выполнения дальнейшей работы с файлом,
что позволяют осуществлять следующие методы:
11. Метод seekable() – выводит True, если указатель файла можно сдвинуть в другую позицию, и
False – в противном случае:

18.

Атрибуты, применяемые
в работе с файлами
1. Атрибут name – выводит название файла:
2. Атрибут mode – выводит режим работы, в
котором был открыт файл:
3. Атрибут closed – выводит True, если файл
был закрыт, и False – в противном случае:

19.

Атрибуты, применяемые
в работе с файлами
4. Атрибут encoding – выводит название
кодировки (если она указана при
открытии файла). Изменение значения
данного атрибута не представляется
возможным, это связано с тем, что он
доступен только для чтения:
Также вывести название кодировки
возможно, подключив модуль sys. При
этом
совершенно
необязательно
указывать название кодировки при
открытии файла:
5. Атрибут buffer – предоставляет
доступ к буферу, иными словами
позволяет записать последовательность
байтов
в
текстовый
поток.
Рассматриваемый атрибут доступен
только в текстовом режиме:

20.

Функции, применяемые
для манипулирования файлами
Для выполнения манипуляций над файлами в языке программирования «Python»
предназначены следующие модули:
1. Модуль shutil применяется для копирования и перемещения файлов.
1) copyfile(<копируемый файл>, <файл в
который
копируется>)

копирование
содержимого файла в другой файл, при этом
метаданные (например, кодировка или права
доступа) не копируются:
2) copy(<копируемый файл>, <файл в
который
копируется>)

копирование
содержимого файла в другой файл вместе с
правами доступа:
3) copy2(<копируемый файл>, <файл в который
копируется>) – копирование содержимого
файла в другой файл вместе с метаданными:
4)
move(<путь
к
файлу>,
<куда
перемещается>) – перемещение файла в
указанное место, при этом исходный файл
удаляется:

21.

Функции, применяемые
для манипулирования файлами
Для выполнения манипуляций над файлами в языке программирования «Python»
предназначены следующие модули:
2. Модуль os применяется для переименования и удаления файлов:
1) rename(<старое имя файла>, <новое
имя файла>) – переименование файла:
2) remove() и unlink() – удаление файла, здесь
в качестве параметра может быть указан либо
абсолютный, либо относительный путь к
файлу, в зависимости от его размещения:

22.

Функции, применяемые
для манипулирования файлами
Для выполнения манипуляций над файлами в языке программирования «Python»
предназначены следующие модули:
3. Модуль os.path:
1) exists(<путь к файлу>) – проверка
указанного пути на предмет существования:
2) getsize(<путь к файлу>) – вывод размера
файла в байтах:
3) getatime(<путь к файлу>) – вывод
количества секунд, прошедших с 1 января
1970 г. до момента последнего доступа к
файлу:
4) getctime(<путь к файлу>) – вывод
количества секунд, прошедших с 1 января
1970 г. до момента создания файла:
5) getmtime(<путь к файлу>) – вывод
количества секунд, прошедших с 1 января
1970 г. до момента последнего изменения
файла:

23.

Функции, применяемые
для преобразования пути к файлу
Выполнять преобразования пути к файлу в языке программирования «Python»
позволяют следующие функции модуля os.path:
1) abspath(<относительный путь>) –
осуществляет
преобразование
относительного пути к фалу в абсолютный:
2) isabs(<путь>) – выводит True, если путь,
указанный в параметре является абсолютным
и False – если путь, указанный в параметре
является относительным:
3) basename(<путь>) – выводит имя файла
без пути к нему:
4) dirname(<путь>) – выводит путь к папке, в
которой храниться файл:

24.

Функции, применяемые
для преобразования пути к файлу
Выполнять преобразования пути к файлу в языке программирования «Python»
позволяют следующие функции модуля os.path:
5) split(<путь>) – выводит кортеж,
состоящий из двух элементов, первым из
которых является путь к папке, в которой
храниться файл, а вторым – название файла:
6) splitdrive(<путь>) – выводит кортеж,
состоящий из двух элементов, первым из
которых является имя диска, на котором
храниться файл, а вторым – остальная часть
пути до файла:
7) splitext(<путь>) – выводит кортеж,
состоящий из двух элементов, первым из
которых является путь с названием файла, но
без указания расширения данного файла, а
вторым – расширение файла:
8) join(<путь1>, <путь2>, . . . <путьn>) –
соединяет
указанные
элементы
пути,
вставляя между ними разделители в случае
необходимости:

25.

Работа с каталогами в языке
программирования «Python»
При работе с каталогами применяются
функциональные возможности модулей os и os.path:
Функции модуля os:
1) getcwd() – выводит абсолютный адрес
текущего рабочего каталога, при этом,
текущим рабочим каталогом будет
каталог, из которого запускается файл, а
не каталог с исполняемым файлом:
2) chdir() – делает, указанный
параметре, каталог текущим:
в
3) mkdir() – создает новый каталог, имя
которого указанно в параметре, в текущем
рабочем каталоге:
4) rmdir() – удаляет пустой каталог, при
этом если в каталоге есть файлы или
указанный каталог не существует, то
выводится сообщение об ошибке:
5) listdir() – вывод списка объектов,
находящихся в каталоге, указанном в
параметре:

26.

Работа с каталогами в языке
программирования «Python»
При работе с каталогами применяются
функциональные возможности модулей os и os.path:
Модуль os.path позволяет реализовать следующий функционал:
1) isdir() – выводит True, если объект,
указанный в параметре, является
каталогом, и False – в противном
случае:
2) isfile() – выводит True, если объект,
указанный в параметре, является
файлом, и False – в противном случае:
English     Русский Rules