> **Источник:** https://python-all.ru/3.0/library/netrc.html
>
> «Документация Python на русском» – неофициальный перевод официальной документации Python: версии от 2.6 до 3.16, полнотекстовый поиск, английский оригинал рядом с переводом. Эта Markdown-версия страницы предназначена для работы с LLM: вставьте её в ChatGPT, Claude или Cursor.

---

# `netrc` – обработка файлов netrc

Класс [`netrc`](https://python-all.ru/3.0/library/netrc.html#netrc.netrc) разбирает и инкапсулирует формат файлов netrc, используемый программой **ftp** в Unix и другими FTP-клиентами.

#### `[netrc.netrc]class netrc.netrc([file])`

Экземпляр

[`netrc`](https://python-all.ru/3.0/library/netrc.html#netrc.netrc)

или его подкласс инкапсулирует данные из файла netrc. Аргумент инициализации, если указан, задаёт файл для разбора. Если аргумент не указан, будет прочитан файл

`.netrc`

из домашнего каталога пользователя. Ошибки разбора приведут к возникновению исключения

[`NetrcParseError`](https://python-all.ru/3.0/library/netrc.html#netrc.NetrcParseError)

с диагностической информацией, включающей имя файла, номер строки и завершающий токен.

#### `[netrc.NetrcParseError]exception netrc.NetrcParseError`

Исключение, вызываемое классом

[`netrc`](https://python-all.ru/3.0/library/netrc.html#netrc.netrc)

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

`msg`

– текстовое описание ошибки,

`filename`

– имя исходного файла, а

`lineno`

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

## Объекты netrc

Экземпляр [`netrc`](https://python-all.ru/3.0/library/netrc.html#netrc.netrc) имеет следующие методы:

#### `[netrc.netrc.authenticators]netrc.authenticators(host)`

Возвращает кортеж из трёх элементов

`(login, account, password)`

аутентификаторов для

*host*

. Если файл netrc не содержал записи для указанного хоста, возвращает кортеж, связанный с записью 'default'. Если нет ни подходящего хоста, ни записи по умолчанию, возвращает

`None`

.

#### `[netrc.netrc.__repr__]netrc.__repr__()`

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

Экземпляры [`netrc`](https://python-all.ru/3.0/library/netrc.html#netrc.netrc) имеют открытые переменные экземпляра:

#### `[netrc.netrc.hosts]netrc.hosts`

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

`(login, account, password)`

. Запись 'default', если она есть, представлена как псевдо-хост с этим именем.

#### `[netrc.netrc.macros]netrc.macros`

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

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