netrc — обработка файла netrc

Исходный код: 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, прежде чем использовать кодировку, специфичную для локали.

exception netrc.NetrcParseError

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

netrc Объекты

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

netrc.authenticators(host)

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

netrc.__repr__()

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

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

netrc.hosts

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

netrc.macros

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

Примечание

Пароли ограничены подмножеством набора символов ASCII. В паролях разрешена вся пунктуация ASCII, однако обратите внимание, что пробелы и непечатаемые символы в паролях запрещены. Это ограничение способа разбора файла .netrc, и в будущем оно может быть устранено.

Вернуться на верх