926.04K
Категория: ПрограммированиеПрограммирование

Основы алгоритмизации и программирования

1.

МК
КОМБИНИРОВАННЫЙ ТИП ДАННЫХ – ЗАПИСЬ.
ФАЙЛЫ ПОСЛЕДОВАТЕЛЬНОГО ДОСТУПА.
ФАЙЛЫ ПРЯМОГО ДОСТУПА
ОСНОВЫ АЛГОРИТМИЗАЦИИ И ПРОГРАММИРОВАНИЯ

2.

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

3.

МК
Свойства файла
Файл может обладать различным набором свойств в зависимости от
файловой системы.
В большинстве файловых систем файл имеет следующие свойства:
•имя и расширение (как правило, называемые просто именем вместе):
например, моя_программа.py;
•дата/время (могут быть предусмотрены маркеры создания, модификации
и последнего доступа);
•владелец;
•атрибуты (скрытый, системный и др.) и права доступа.
Имя файла имеет определенные ограничения в зависимости от файловой и
операционной системы, в частности, допустимые знаки и длину
наименования. Расширение указывается после имени через точку, имея
назначение, в основном, для ОС Windows, где определяет приложение для
запуска файла.

4.

МК
Путь к файлу: абсолютный и относительный
Путь может быть:
• абсолютным (полным): указывает на одно и то же место в
файловой системе вне зависимости от текущей рабочей
директории или других обстоятельств;
• относительным: путь по отношению к текущему рабочему каталогу
пользователя или активных приложений.
Примеры путей для ОС Windows:
• абсолютный: C:\user\python\example1.py;
• относительный: example1.py если текущий каталог C:\user\python\;
• относительный: python\example1.py если текущий каталог C:\user\;

5.

МК
Операции с файлами
Все операции с файлами можно подразделить на 2 группы:
•связанные с его открытием: открытие, закрытие файла, запись, чтение,
перемещение по файлу и др.
•выполняющиеся без его открытия: работа с файлом как элементом файловой
системы - переименование, копирование, получение атрибутов и др.
При открытии файла, как правило, указываются:
•имя файла;
•права доступа
После чего операционная система возвращает специальный идентификатор
файла, однозначно определяющий, с каким файлом далее будут выполняться
операции. После открытия доступен файловый указатель - число,
определяющее позицию относительно начала файла.

6.

МК
Виды файлов
По способу организации файлы делятся на файлы с последовательным
и произвольным доступом
Доступ к файлам
• Последовательный:
Очередной элемент можно прочитать и записать только после
аналогичной операции с предыдущим элементом
• Прямой(произвольный):
Чтение и запись произвольного элемента выполняется по заданному
адресу
• К текстовым файлам доступ только последовательный
• К типизированным и нетипизированным файлам доступ может
быть как последовательным, так и прямым

7.

МК
Типы файлов
В Python существует два типа файлов:
• Текстовые
Это файлы с человекочитаемым содержимым. В них хранятся
последовательности символов, которые понимает человек. Блокнот и
другие стандартные редакторы умеют читать и редактировать этот
тип файлов.
Текст может храниться в двух форматах: (.txt) — простой текст и (.rtf)
— «формат обогащенного текста».
• Бинарные
В бинарных файлах данные отображаются в закодированной форме
(с использованием только нулей (0) и единиц (1) вместо простых
символов). В большинстве случаев это просто последовательности
битов.
Они хранятся в формате .bin.

8.

МК
Операции с файлом
Любую операцию с файлом можно разбить на три этапа:
1. Открытие файла
2. Выполнение операции (запись, чтение)
3. Закрытие файла
Открытие файла
Метод open()
В Python есть встроенная функция open(). С ее помощью можно
открыть любой файл на компьютере. Технически Python создает на
его основе объект.

9.

МК
Открытие файла
Синтаксис следующий:
f = open(file_name, access_mode)
Где,
• file_name = имя открываемого файла
• access_mode = режим открытия файла. Он может быть: для
чтения, записи и т. д. По умолчанию используется режим чтения (r),
если другое не указано. Далее полный список режимов открытия
файла

10.

Режимы
МК
Режим
r
w
rb
wb
r+
rb+
w+
Описание
Только для чтения.
Только для записи. Создаст новый файл, если не найдет с указанным именем.
Только для чтения (бинарный).
Только для записи (бинарный). Создаст новый файл, если не найдет с указанным именем.
Для чтения и записи.
Для чтения и записи (бинарный).
Для чтения и записи. Создаст новый файл для записи, если не найдет с указанным
именем.
wb+
Для чтения и записи (бинарный). Создаст новый файл для записи, если не найдет с
указанным именем.
a
Откроет для добавления нового содержимого. Создаст новый файл для записи, если не
найдет с указанным именем.
Откроет для добавления нового содержимого. Создаст новый файл для чтения записи,
если не найдет с указанным именем.
a+
ab
ab+
Откроет для добавления нового содержимого (бинарный). Создаст новый файл для
записи, если не найдет с указанным именем.
Откроет для добавления нового содержимого (бинарный). Создаст новый файл для чтения
записи, если не найдет с указанным именем.

11.

МК
Пример
Создадим текстовый файл example.txt и сохраним его в рабочей директории.
Следующий код используется для его открытия.
f = open('example.txt','r') # открыть файл из рабочей директории в режиме чтения
fp = open('C:/xyz.txt','r') # открыть файл из любого каталога

12.

МК
Пример
Следующий код используется для вывода содержимого файла и информации о нем.

13.

МК
Закрытие файла
Метод close()
После открытия файла в Python его нужно закрыть. Таким образом
освобождаются ресурсы и убирается мусор. Python автоматически закрывает
файл, когда объект присваивается другому файлу.
Существуют следующие способы:
Способ №1
Проще всего после открытия файла закрыть его, используя метод close().
После закрытия этот файл нельзя будет использовать до тех пор, пока заново
его не открыть.

14.

МК
Закрытие файла
Способ №2
Также можно написать try/finally, которое гарантирует, что если после
открытия файла операции с ним приводят к исключениям, он закроется
автоматически. Без него программа завершается некорректно.
Вот как сделать это исключение:
Этот метод гарантирует, что если операции над файлом вызовут исключения, то
он закроется до того как программа остановится.

15.

МК
Закрытие файла
Способ №3
Инструкция with
В таком случае инструкция close не нужна, потому что with автоматически
закроет файл.
Вот как это можно реализовать:

16.

МК
Чтение и запись файлов в Python
В Python файлы можно читать или записывать информацию в них с помощью
соответствующих режимов.
Функция read()
Функция read() используется для чтения содержимого файла после открытия
его в режиме чтения (r).
Синтаксис:
file.read(size)
Где,
• file = объект файла
• size = количество символов, которые нужно прочитать. Если не указать,
то файл прочитается целиком.

17.

МК
Чтение и запись файлов в Python
Пример
Интерпретатор прочитал 7 символов файла и если снова использовать функцию
read(), то чтение начнется с 8-го символа.

18.

МК
Функция readline()
Функция readline() используется для построчного чтения содержимого файла.
Она используется для крупных файлов. С ее помощью можно получать доступ к
любой строке в любой момент.
Пример
Создадим файл test.txt с нескольким строками:

19.

МК
Функция write()
Функция write() используется для записи в файлы Python, открытые в режиме
записи.
Если пытаться открыть файл, которого не существует, в этом режиме, тогда
будет создан новый.
Синтаксис:
file.write(string)
Пример
Предположим, файла xyz.txt не существует. Он будет создан при попытке
открыть его в режиме чтения.

20.

МК
Переименование файлов в Python
Функция rename()
Функция rename() используется для переименовывания файлов в Python. Для ее
использования сперва нужно импортировать модуль os.
Синтаксис:
import os
os.rename(src,dest)
Где,
• src = файл, который нужно переименовать
• dest = новое имя файла
Пример:

21.

МК
Текущая позиция в файлах Python
В Python возможно узнать текущую позицию в файле с помощью функции tell().
Таким же образом можно изменить текущую позицию командой seek().
Пример:

22.

Методы файла в Python
МК
file.close()
закрывает открытый файл
file.fileno()
возвращает целочисленный дескриптор файла
file.flush()
очищает внутренний буфер
file.isatty()
возвращает True, если файл привязан к терминалу
file.next()
file.read(n)
file.readline()
возвращает следующую строку файла
чтение первых n символов файла
читает одну строчку строки или файла
file.readlines()
читает и возвращает список всех строк в файле
file.seek(offset[,whene])
устанавливает текущую позицию в файле
file.seekable()
проверяет, поддерживает ли файл случайный доступ.
Возвращает True, если да
file.tell()
file.write(str)
возвращает текущую позицию в файле
уменьшает размер файл. Если n указала, то файл обрезается до n
байт, если нет — до текущей позиции
добавляет строку str в файл
file.writelines(sequence)
добавляет последовательность строк в файл
file.truncate(n)
English     Русский Правила