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— 매크로 이름을 문자열 리스트로 매핑하는 딕셔너리.