Python

netrc — netrc 파일 처리

소스 코드: Lib/netrc.py


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

class netrc.netrc([file])

netrc 인스턴스 또는 서브클래스 인스턴스는 netrc 파일의 데이터를 캡슐화합니다. 초기화 인수가 제공되면 파싱할 파일을 지정합니다. 인수가 제공되지 않으면 os.path.expanduser`에 의해 결정된 사용자 디렉터리의 파일 :file:().netrc`가 읽힙니다. 그렇지 않으면 FileNotFoundError 예외가 발생합니다. 파싱 오류는 파일 이름, 줄 번호 및 종료 토큰 등의 진단 정보를 포함하는 :exc:`NetrcParseError`를 발생시킵니다.

POSIX 시스템에서 인수를 지정하지 않은 경우, 파일 소유권이나 권한이 안전하지 않은 .netrc` 파일에 비밀번호가 존재하면 NetrcParseError`가 발생합니다 (프로세스를 실행하는 사용자 이외의 사용자가 소유했거나, 다른 모든 사용자가 읽기 또는 쓰기가 가능한 경우). 이는 :file:.netrc``를 사용하는 ftp 및 기타 프로그램의 보안 동작과 동등한 기능을 구현합니다. 그러한 보안 검사는 :func:`os.getuid`를 지원하지 않는 플랫폼에서는 사용할 수 없습니다.

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

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

버전 3.10에서 변경: :class:`netrc`는 로케일별 인코딩을 사용하기 전에 UTF-8 인코딩을 시도합니다. netrc 파일의 항목은 더 이상 모든 토큰을 포함할 필요가 없습니다. 없는 토큰 값은 기본적으로 빈 문자열입니다. 모든 토큰과 값은 이제 공백 및 비-ASCII 문자와 같은 임의의 문자를 포함할 수 있습니다. 로그인 이름이 익명인 경우, 보안 확인을 유발하지 않습니다.

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

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