# `netrc` — netrc 파일 처리

소스 코드: Lib/netrc.py

`netrc` 클래스는 유닉스 ftp 프로그램과 다른 FTP 클라이언트가 사용하는 netrc 파일 형식을 구문 분석하고 캡슐화합니다.

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

  `netrc` 인스턴스나 서브 클래스 인스턴스는 netrc 파일의 데이터를 캡슐화합니다. 초기화 인자가 있으면 구문 분석할 파일을 지정합니다. 인자를 지정하지 않으면, `os.path.expanduser()`에 의해 결정된 사용자 홈 디렉터리에 있는 파일 `.netrc`를 읽습니다. 그렇지 않으면, `FileNotFoundError` 예외가 발생합니다. 구문 분석 에러는 파일 이름, 줄 번호 및 종료 토큰을 포함하는 진단 정보로 `NetrcParseError`를 발생시킵니다. POSIX 시스템에서 인자가 지정되지 않을 때, 파일 소유권이나 권한이 안전하지 않으면 (프로세스를 실행하는 사용자가 아닌 다른 사용자가 소유하거나 다른 모든 사용자가 읽기 또는 쓰기로 액세스할 수 있는 경우), `.netrc` 파일에 암호가 존재하면 `NetrcParseError`가 발생합니다. 이것은 ftp와 `.netrc`를 사용하는 다른 프로그램과 동등한 보안 행동을 구현합니다.

  버전 3.4에서 변경: POSIX 권한 검사를 추가했습니다.

  버전 3.7에서 변경: file이 인자로 전달되지 않으면 `os.path.expanduser()`가 `.netrc` 파일의 위치를 찾는 데 사용됩니다.

  버전 3.10에서 변경: `netrc` try UTF-8 encoding before using locale specific encoding.

exception `netrc.``NetrcParseError`

  소스 텍스트에 문법적인 에러가 있을 때 `netrc` 클래스에서 발생하는 예외. 이 예외 인스턴스는 세 가지 흥미로운 어트리뷰트를 제공합니다. `msg`는 에러의 텍스트 설명이고, `filename`은 소스 파일의 이름이며, `lineno`는 에러가 발견된 줄 번호입니다.

## netrc 객체

`netrc` 인스턴스에는 다음과 같은 메서드가 있습니다:

`netrc.``authenticators`(host)

  host에 대한 인증 자의 3-tuple `(login, account, password)`를 반환합니다. netrc 파일에 주어진 호스트에 대한 항목이 없으면 ‘default’ 항목과 연관된 튜플을 반환합니다. 일치하는 호스트도 기본 항목도 사용할 수 없으면 `None`을 반환합니다.

`netrc.``__repr__`()

  클래스 데이터를 netrc 파일의 형식의 문자열로 덤프합니다. (이것은 주석을 버리고 엔트리를 재정렬할 수 있습니다.)

`netrc`의 인스턴스에는 공개 인스턴스 변수가 있습니다:

`netrc.``hosts`

  호스트 이름을 `(login, account, password)` 튜플에 매핑하는 딕셔너리. ‘default’ 항목이 있으면 그 이름의 의사 호스트로 표시됩니다.

`netrc.``macros`

  매크로 이름을 문자열 리스트에 매핑하는 딕셔너리.

참고

암호는 ASCII 문자 집합의 부분집합으로 제한됩니다. 모든 ASCII 구두점을 암호에 사용할 수 있지만, 공백과 인쇄 할 수 없는 문자는 암호에 사용할 수 없습니다. 이것은 .netrc 파일이 구문 분석되는 방식으로 인한 제한 사항이며 향후 제거될 수 있습니다.