Функция open( )
Синтаксис:
open(путь, режим = ‘r’, буферизация = -1, кодировка = None, ошибка = None, перевод_строки = None, closed = True, opener = None)
путь – путь к файлу, может быть абсолютным т.е. полным (например ‘C:\Users\Downloads\text.py’), если же вызываемый файл находится в текущем рабочем каталоге можно применять относительный путь( например ‘text.py’). Обязательный аргумент, строка (str).
режим – режим в котором открывается файл.
Доступны следующие значения:
- 'r' – открывает файл для чтения. Если файла не существует возбуждается исключение FileNotFoundError.
- ‘w’ – отрывает файл для записи. Если файла нет он будет создан, если файл есть, вся информация в отрываемом файле будет удалена.
- ‘a’ – открывает файл для записи в конец файла.
- ‘x’ – создает новый файл и отрывает его для записи. Если файл существует возбуждается исключение ' FileExistsError
- ‘+’ – открывает файл для обновления, чтения и записи.
Файл может быть открыт в текстовом или двоичном режиме. Для открытия файла в двоичном режиме необходимо добавить к выбранному режиму символ ‘b’, для открытия файл в текстовом режиме – добавляется символ ‘t’. В случае если не один из символов не указан файл открывается в текстовом режиме.
Аргумент режим – необязательный, по умолчанию равен ‘rt’.
буферизация – выбор политики буферизации, возможны следующие значения:
- 0 – отключение буферизации, данные сразу записываются в файл. Доступно только в двоичном режиме;
- 1 – построчная буферизация;
Целое число меньше 1 для указания размера буфера в байтах;
Если аргумента буферизация – нет, размер буфера автоматически выбирается или 4096 или 8192 байта.
Необязательный аргумент.
кодировка – название кодировки для кодирования и декодирования файла. Используется только в текстовом режиме. По умолчанию кодировка зависит от операционной системы (для русской Windows это cp1251). В качестве аргумента кодировка могут использоваться любые кодировки поддерживаемая Python. Их можно посмотреть в модуле codecs. Необязательный аргумент, по умолчанию равен None.
ошибка – режим обработки ошибок кодировки. Может принимать следующие стандартные значения:
'strict' –ошибка кодирования возбуждает исключение ValueError. (значение None делает тоже самое)
‘ignore’ – ошибка кодирования игнорируется
‘replace’ – ошибка кодирования заменяется на замещающий маркер (например - ?). Используется только с текстовыми кодировками.
‘xmlcharrefreplace’ - ошибка кодирования заменяется ссылкой на символ XML. Используется только с текстовыми кодировками.
‘backslashreplace’ - ошибка кодирования заменяется на escape-последовательность с обратной косой чертой. Используется только с текстовыми кодировками.
‘namereplace’ - ошибка кодирования заменяется на \N{…}escape-последовательность. Используется только с текстовыми кодировками.
‘surrogateescape’ – не декодированные байты будут представлены как суррогатные коды в пределах от U+DC80 до U+DCFF. При кодировании обработчик ошибок surrogateescape преобразует их обратно в соответствующий байт
‘surrogatepass’ – разрешение на кодирование и декодирование суррогатных кодов.
Может принимать и пользовательские значения.
Необязательный аргумент, по умолчанию равен None.
перевод_строки – задает режим работы универсальных символов новых строк. Может иметь значения: None, ‘ ‘, ‘\n’, ‘\r’, ‘\r\n\’.
closed – в случае если в аргументе путь указано имя файла или путь к нему, аргумент должен иметь значение True, в случае если в аргументе путь указан дескриптор, то значение аргумента - False оставляет открытым дескриптор после закрытия файла.
opener – название пользовательского объекта, который будет использован для открытия файла.
Функция open() возвращает файловый объект, тип которого зависит от режима используемого при открытии. Если файл открывается:
В текстовом режиме – функция open() возвращает объект io.TextIOWrapper.
В двоичном режиме чтения с буферизацией – функция open() возвращает объект io.BufferedReader.
В двоичном режиме записи с буферизацией – функция open() возвращает объект io.BufferedWriter.
В двоичном режиме без буферизации – функция open() возвращает объект io.FileIO.
По ссылкам можно почитать мои конспекты:
Встроенные функции (Built-in)
Методы словаря (Dict methods)
Методы списков (List methods)
Строковые методы (String Methods)
Спецификаторы
Итерируемый тип данных
Инструкции continue, break и pass
Цикл for … in
Цикл while
Условная инструкция if
Индексация
Переменные
Встроенные функции print() и input()
Оператор присваивания
Основные типы данных
Коротко о языке
Книги и курсы по Python
Книги и курсы по Python год спустя.