Документация Python неофициальный перевод
Содержание страницы

netrc – обработка файлов netrcnetrc – netrc file processing

Исходный код: Lib/netrc.py


Класс netrc анализирует и инкапсулирует формат файлов netrc, используемый программой Unix ftp и другими FTP-клиентами.

class netrc.netrc([file])

Экземпляр netrc или подкласса инкапсулирует данные из файла netrc. Аргумент инициализации, если он задан, указывает файл для разбора. Если аргумент не указан, читается файл .netrc в домашнем каталоге пользователя (определяемом через os.path.expanduser()). В противном случае будет возбуждено исключение FileNotFoundError. Ошибки разбора возбуждают NetrcParseError с диагностической информацией, включающей имя файла, номер строки и завершающий токен. Если на POSIX-системе аргумент не указан, наличие паролей в файле .netrc приведёт к возбуждению NetrcParseError, если права владения или доступа к файлу небезопасны (файл принадлежит не тому пользователю, который запустил процесс, или доступен для чтения или записи любому другому пользователю). Это реализует поведение безопасности, эквивалентное ftp и другим программам, использующим .netrc.

Изменено в версии 3.4: Добавлена проверка прав POSIX.

Изменено в версии 3.7: os.path.expanduser() используется для поиска расположения файла .netrc, когда file не передан в качестве аргумента.

Изменено в версии 3.10: netrc пробует кодировку UTF-8 перед использованием кодировки, зависящей от локали. Запись в файле netrc больше не обязана содержать все токены. Значение отсутствующих токенов по умолчанию равно пустой строке. Все токены и их значения теперь могут содержать произвольные символы, такие как пробельные и не-ASCII символы. Если имя входа – anonymous, проверка безопасности не выполняется.

exception netrc.NetrcParseError

Исключение, возбуждаемое классом netrc при обнаружении синтаксических ошибок в исходном тексте. Экземпляры этого исключения содержат три следующих атрибута:

msg

Текстовое описание ошибки.

filename

Имя исходного файла.

lineno

Номер строки, в которой обнаружена ошибка.

Объекты netrcnetrc Objects

Экземпляр netrc имеет следующие методы:

netrc.authenticators(host)

Возвращает кортеж из трёх элементов (login, account, password) аутентификаторов для хоста. Если файл netrc не содержит записи для указанного хоста, возвращает кортеж, связанный с записью 'default'. Если нет ни подходящего хоста, ни записи по умолчанию, возвращает None.

netrc.__repr__()

Выгружает данные класса в виде строки в формате файла netrc. (При этом отбрасываются комментарии и может измениться порядок записей.)

Экземпляры netrc имеют открытые переменные экземпляра:

netrc.hosts

Словарь, сопоставляющий имена хостов с кортежами (login, account, password). Запись 'default', если присутствует, представлена как псевдохост с этим именем.

netrc.macros

Словарь, сопоставляющий имена макросов со списками строк.