netrc — netrc 파일 처리
netrc — netrc 파일 처리
netrc 클래스는 Unix ftp 프로그램과 다른 FTP 클라이언트가 사용하는 netrc 파일 형식을 파싱하고 캡슐화해요. 로그인 정보를 기계적으로 관리하는 netrc 파일을 파이썬에서 쉽게 읽고 활용할 수 있게 해줘요.
본문
- class netrc.netrc([file]) —
netrc인스턴스(또는 하위 클래스 인스턴스)는 netrc 파일의 데이터를 캡슐화해요. 초기화 인자를 주면 해당 파일을 파싱해요. 인자가 없으면os.path.expanduser()로 결정된 사용자 홈 디렉터리의.netrc파일을 읽어요. 그 파일이 없으면FileNotFoundError가 발생해요. 파싱 오류는 파일 이름, 줄 번호, 종료 토큰을 포함한 진단 정보와 함께NetrcParseError로 발생해요.
POSIX 시스템에서 인자를 지정하지 않으면, .netrc 파일의 소유권이나 권한이 불안전할 때(실행 중인 프로세스 사용자 외의 사용자가 소유했거나 다른 사용자가 읽기·쓰기 가능한 경우) 비밀번호 존재 여부에 따라 NetrcParseError 가 발생해요. 이는 ftp 및 .netrc 를 사용하는 다른 프로그램과 동등한 보안 동작을 구현한 거예요. os.getuid() 를 지원하지 않는 플랫폼에서는 이런 보안 검사가 제공되지 않아요.
-
버전 3.4에서 POSIX 권한 검사가 추가됐어요.
-
버전 3.7에서 file 인자를 넘기지 않을 때
.netrc파일 위치를 찾는 데os.path.expanduser()를 사용하게 됐어요. -
버전 3.10에서
netrc는 로케일 특정 인코딩보다 UTF-8 인코딩을 먼저 시도해요. netrc 파일의 항목이 더 이상 모든 토큰을 포함할 필요가 없으며, 누락된 토큰 값은 빈 문자열로 기본값이 정해져요. 모든 토큰과 값은 이제 공백·비ASCII 문자 같은 임의의 문자를 포함할 수 있어요. 로그인 이름이 anonymous 면 보안 검사가 실행되지 않아요. -
exception netrc.NetrcParseError —
netrc클래스가 원문 텍스트에서 구문 오류를 만났을 때 발생시키는 예외예요. 인스턴스는 세 가지 유용한 속성을 제공해요.- msg — 오류에 대한 텍스트 설명.
- filename — 원본 파일 이름.
- lineno — 오류가 발견된 줄 번호.
netrc 객체 (netrc Objects)
netrc 인스턴스는 다음 메서드를 가져요.
- netrc.authenticators(host) — host 에 대한 인증 정보
(login, account, password)3-튜플을 반환해요. netrc 파일에 해당 호스트 항목이 없으면 'default' 항목과 연결된 튜플을 반환해요. 일치하는 호스트도 default 항목도 없으면None을 반환해요. - netrc.repr() — 클래스 데이터를 netrc 파일 형식의 문자열로 덤프해요. (이 과정에서 주석은 버려지고 항목 순서가 바뀔 수 있어요.)
netrc 인스턴스는 공개 인스턴스 변수를 가져요.
- netrc.hosts — 호스트 이름을
(login, account, password)튜플에 매핑하는 딕셔너리예요. 'default' 항목이 있으면 그 이름의 가상 호스트로 표현돼요. - netrc.macros — 매크로 이름을 문자열 목록에 매핑하는 딕셔너리예요.