Опубликован: 15.11.2010 | Доступ: свободный | Студентов: 746 / 45 | Оценка: 4.00 / 5.00 | Длительность: 17:30:00
Специальности: Программист
Лекция 8:

Буферизированный (потоковый) ввод-вывод. Часть III

8.8. Приложение № 5. Операторы и функции файлового ввода-вывода на языке Python

МЕТОД OPEN
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "дескриптор" = open( "имя", "режим" ), где
  • "дескриптор" - переменная с любым уникальным именем, обозначающая дескриптор файла;
  • "имя" - имя и путь к файлу;
  • "режим" - один из следующих режимов открытия файла:
    • w Открыть файл для записи. Если такой файл уже существует, то его содержимое исчезает (если это возможно).
    • r Открыть файл только для чтения.
    • a Открыть файл для добавления, т.е. записи в конец файла. Предыдущее содержимое файла сохраняется.
    • r+ Открыть файл для записи/чтения, содержимое файла сохраняется.
    • w+ Открыть файл для записи/чтения, содержимое файла исчезает (смотри w ).
    • r+b Открыть двоичный (если такие файлы поддерживаются операционной системой) файл для записи/чтения, содержимое файла сохраняется.
    • w+b Открыть двоичный файл для записи/чтения, содержимое файла исчезает (смотри w ).
    • rb Открыть двоичный файл только для чтения.
    • wb Открыть двоичный файл для записи. Если такой файл уже существует, то его содержимое исчезает (если это возможно).
НАЗНАЧЕНИЕ: Открывает файловый объект для последующего оперирования с ним;
ОПИСАНИЕ: Функция принимает два параметра: строку, содержащую путь к файлу (может быть абсолютным или относительным текущего каталога или переменной окружения PATH ) и режимом открытия файла. Режим открытия файла определяет допустимые операции доступа к файлу;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Дескриптор открытого файла;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД READ
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "строка" = "дескриптор".read(["число байт"]) ; где
  • "строка" - прочтённая из файла строка;
  • "дескриптор" - дескриптор файла, открытый функцией: open ;
  • "число байт" - число прочтённых из файла символов (не обязательный параметр);
НАЗНАЧЕНИЕ: Данный метод читает из файла, открытого для чтения, число байтов, указанных в качестве аргумента;
ОПИСАНИЕ: Данный метод читает из файла, открытого для чтения, число байтов, указанных в качестве аргумента. Если метод вызывается без параметров, то читается весь файл, если файл был прочитан до конца (встретился символ EOF), то метод read() возвращает пустую строку;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Строка символов или пустая строка, если достигнут конец файла;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД READLINE
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "строка" = "дескриптор".readline() ; где
  • "строка" - прочтённая из файла строка;
  • "дескриптор" - дескриптор файла, открытый функцией: open ;
НАЗНАЧЕНИЕ: Метод readline() читает одну строку файла до символа перевода строки (включая сам символ \n );
ОПИСАНИЕ: Метод readline() читает одну строку файла до символа перевода строки (включая сам символ \n ). Если строка состоит только из символа перевода строки, то метод readline() возвращает пустую строку. Если в конце файла нет пустой строки с символом \n, то возвращаемый результат не определён (этого допускать нельзя);
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: прочтённая из файла строка текста;
ПЕРЕНОСИМОСТЬ:

МЕТОД READLINES
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "список" = "дескриптор".readlines(["размер строки"]) ; где
  • "список" - прочтённая из файла строки текста, помещённые в переменную список;
  • "дескриптор" - дескриптор файла, открытый функцией: open ;
  • "размер строки" - минимальная длина строки (не обязательный параметр);
НАЗНАЧЕНИЕ: Метод читает все строки файла в список;
ОПИСАНИЕ: Читаются только законченные строки. Необязательный параметр "размер_строки" читает строку, и, если она меньше указанной длины, читает дальше, до достижения указанного числа символов. Такой приём эффективен для чтения очень больших файлов построчно без необходимости размещения его в памяти;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Переменная, содержащая в себе список строк;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД WRITE
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "дескриптор".write("строка текста") ; где
  • "дескриптор" - дескриптор файла, открытый функцией: open ;
  • "строка текста" - выводимая в файл строка текста;
НАЗНАЧЕНИЕ: Метод write пишет в файл указанную строку, ничего при этом не возвращая;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Отсутствует;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД SEEK
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "дескриптор".seek("на_сколько_байт"[, "откуда"]), где
  • "дескриптор" - дескриптор файла, открытый функцией: open ;
  • "на_сколько_байт" - на какое расстояние (в байтах) перемещается текущее положение файла. Это положение может быть положительным и отрицательным;
  • "откуда" - "точка отсчёта", откуда будет отсчитываться смещение файла (не обязательный параметр).

Его значение следующее (Смотри таблицу 8.1):

0(по умолчанию) 1 2
Начало файла текущая позиция в файле конец файла

НАЗНАЧЕНИЕ: Метод seek перемещает указатель текущего положения файла на заданное количество байт от позиции, указанной вторым аргументом;
ОПИСАНИЕ: При этом, число байт для перемещения может быть как положительным, так и отрицательным (при перемещении назад);
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Отсутствует;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД TELL
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "позиция" = "дескриптор".tell() ; где
  • "дескриптор" - дескриптор файла, открытый функцией: open ;
  • "позиция" - число, означающее смещение текущей позиции файла от его начала;
НАЗНАЧЕНИЕ: Метод tell() возвращает текущую позицию в файле;
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Целое положительное число, выражающее смещение текущей позиции файла от его начала;
ПЕРЕНОСИМОСТЬ: Везде;

МЕТОД CLOSE
ОПРЕДЕЛЕН В: System;
СИНТАКСИС: "дескриптор".close() ; где "дескриптор" - дескриптор файла, открытый функцией: open ;
НАЗНАЧЕНИЕ: Закрывает объект файла;
ОПИСАНИЕ: Метод close() закрывает объект файла, перенося все сделанные в нём изменения на диск, возвращая ресурсы операционной системе. Обязательно закрывайте все файлы, которые Вы больше не используете, т.к. не закрытый файл может привести к потере данных. После закрытия обращение к объекту файла автоматически вызывает ошибку.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ: Отсутствует;
ПЕРЕНОСИМОСТЬ: Везде;