plistlib — Apple .plist 파일 생성 및 파싱
plistlib — Apple .plist 파일 생성 및 파싱
plistlib 모듈은 주로 macOS 와 iOS 에서 Apple 이 사용하는 "property list" 파일을 읽고 쓰는 인터페이스를 제공해요. 이 모듈은 바이너리와 XML plist 파일을 모두 지원해요.
본문
property list(.plist) 파일 형식은 딕셔너리, 리스트, 숫자, 문자열 같은 기본 객체 타입을 지원하는 간단한 직렬화예요. 보통 최상위 객체는 딕셔너리예요.
plist 파일을 쓰고 파싱하려면 dump() 와 load() 함수를 사용해요. plist 데이터를 bytes 나 문자열 객체로 다루려면 dumps() 와 loads() 를 사용해요.
값은 문자열, 정수, 부동소수점, 불리언, 튜플, 리스트, 딕셔너리(문자열 키만), bytes, bytearray 또는 datetime.datetime 객체일 수 있어요.
- 버전 3.4에서 새 API 도입, 옛 API 비권장, 바이너리 형식 plist 지원 추가.
- 버전 3.8에서 NSKeyedArchiver·NSKeyedUnarchiver 가 사용하는 바이너리 plist 의
UID토큰 읽기·쓰기 지원 추가. - 버전 3.9에서 옛 API 제거.
함수 (Functions)
-
*plistlib.load(fp, , fmt=None, dict_type=dict, aware_datetime=False) — plist 파일을 읽어요. fp 는 읽기 가능하고 바이너리인 파일 객체여야 해요. 언팩된 루트 객체(보통 딕셔너리)를 반환해요.
- fmt 는 파일 형식이며 유효한 값은
None(자동 감지),FMT_XML(XML),FMT_BINARY(바이너리)예요. - dict_type 은 plist 에서 읽은 딕셔너리에 사용할 타입이에요.
- aware_datetime 이 참이면
datetime.datetime타입 필드가tzinfo로datetime.UTC를 가진 aware 객체로 만들어져요. FMT_XML형식의 XML 데이터는xml.parsers.expat의 Expat 파서로 파싱돼요. 잘못된 XML 의 가능한 예외는 그 문서를 참고하세요. plist 파서는 알 수 없는 요소를 그냥 무시해요.- 파일을 파싱할 수 없으면
InvalidFileException을 발생시켜요. 버전 3.4 추가, 3.13에서 키워드 전용 매개변수 aware_datetime 추가.
- fmt 는 파일 형식이며 유효한 값은
-
*plistlib.loads(data, , fmt=None, dict_type=dict, aware_datetime=False) — bytes 또는 문자열 객체에서 plist 를 로드해요. 키워드 인자 설명은
load()를 참고하세요. 버전 3.4 추가, 3.13에서 fmt 가FMT_XML일 때 data 가 문자열일 수 있음. -
*plistlib.dump(value, fp, , fmt=FMT_XML, sort_keys=True, skipkeys=False, aware_datetime=False) — value 를 plist 파일에 써요. fp 는 쓰기 가능하고 바이너리인 파일 객체여야 해요.
- fmt 는 plist 파일 형식으로
FMT_XML또는FMT_BINARY중 하나예요. - sort_keys 가 참(기본)이면 딕셔너리 키를 정렬 순서로, 아니면 딕셔너리의 반복 순서로 써요.
- skipkeys 가 참이면 문자열이 아닌 키를 가진 딕셔너리를 만나면 건너뛰고, 아니면 예외를 발생시켜요.
- fmt 는 plist 파일 형식으로
-
*plistlib.dumps(value, , fmt=FMT_XML, sort_keys=True, skipkeys=False, aware_datetime=False) — value 를 bytes 객체로 반환해요. 키워드 인자 설명은
dump()를 참고하세요.