netrc — netrc 파일 처리

netrc — netrc 파일 처리

netrc 클래스는 Unix ftp 프로그램과 다른 FTP 클라이언트가 사용하는 netrc 파일 형식을 파싱하고 캡슐화해요.

출처: Python 표준 라이브러리

본문

class netrc.netrc([file])

netrc 인스턴스(또는 하위 클래스 인스턴스)는 netrc 파일의 데이터를 캡슐화해요. 초기화 인자가 있으면 파싱할 파일을 지정해요. 인자가 없으면 사용자 홈 디렉터리의 .netrc 파일(os.path.expanduser()로 결정)을 읽어요. 그러지 않으면 FileNotFoundError 예외가 나요.

파싱 오류는 파일 이름, 줄 번호, 종료 토큰을 포함한 진단 정보와 함께 NetrcParseError를 일으켜요.

POSIX 시스템에서 인자를 지정하지 않으면, .netrc 파일의 소유권이나 권한이 안전하지 않을 때(프로세스를 실행하는 사용자가 아닌 다른 사용자가 소유하거나, 다른 사용자가 읽기·쓰기 접근 가능) 그 파일에 비밀번호가 있으면 NetrcParseError가 나요. 이것은 ftp와 다른 .netrc 사용 프로그램과 동등한 보안 동작을 구현한 거예요. 그런 보안 검사는 os.getuid()를 지원하지 않는 플랫폼에서는 사용할 수 없어요.

버전 3.4에서 변경: POSIX 권한 검사 추가. 버전 3.7에서 변경: file을 인자로 전달하지 않을 때 os.path.expanduser().netrc 파일 위치를 찾는 데 사용됨. 버전 3.10에서 변경: netrc가 로케일별 인코딩 전에 UTF-8 인코딩을 시도. netrc 파일의 항목이 더 이상 모든 토큰을 포함할 필요가 없고, 누락된 토큰의 값은 빈 문자열로 기본 설정돼요. 모든 토큰과 그 값은 이제 공백과 비-ASCII 문자 같은 임의의 문자를 포함할 수 있어요. 로그인 이름이 anonymous이면 보안 검사를 유발하지 않아요.

exception netrc.NetrcParseError

소스 텍스트에서 구문 오류를 만날 때 netrc 클래스가 일으키는 예외. 이 예외의 인스턴스는 세 가지 흥미로운 속성을 제공해요:

  • msg — 오류에 대한 텍스트 설명.
  • filename — 소스 파일의 이름.
  • lineno — 오류가 발견된 줄 번호.

netrc 객체

netrc 인스턴스는 다음 메서드를 가져요.

netrc.authenticators(host)

host에 대한 인증자 3-튜플 (login, account, password)를 돌려줘요. netrc 파일에 주어진 호스트 항목이 없으면 'default' 항목과 연결된 튜플을 돌려줘요. 일치하는 호스트도 기본 항목도 없으면 None을 돌려줘요.

netrc.repr()

클래스 데이터를 netrc 파일 형식의 문자열로 덤프해요.(주석은 버려지고 항목 순서가 바뀔 수 있어요.)

netrc 인스턴스는 공개 인스턴스 변수를 가져요:

  • netrc.hosts — 호스트 이름을 (login, account, password) 튜플로 매핑하는 딕셔너리. 'default' 항목이 있으면 그 이름의 의사 호스트(pseudo-host)로 표현돼요.
  • netrc.macros — 매크로 이름을 문자열 리스트로 매핑하는 딕셔너리.