Archive (아카이브)¶
v1.21.0에서 새로 추가됨
이 클래스는 ZIP 및 TAR 아카이브와 같은 파일 폴더 및 컨테이너 파일의 일반화를 나타냅니다. 아카이브는 파일 폴더, ZIP/TAR 파일 및 단일 바이너리 데이터 요소의 임의 컬렉션에 접근할 수 있게 하며, 모두 하나의 계층적 폴더 트리의 일부인 것처럼 처리합니다.
In PyMuPDF, archives are currently only used by Story objects and as an option when opening files to specify where to look for fonts, images and other resources.
메서드 / 속성 |
간략 설명 |
|---|---|
아카이브에 새 데이터 추가 |
|
주어진 이름이 멤버인지 확인 |
|
이름으로 지정된 데이터 읽기 |
|
아카이브 항목의 list[dict] |
클래스 API
- class Archive¶
- __init__(self[, content[, path]])¶
새 아카이브를 생성합니다. 매개변수가 없으면 빈 아카이브가 생성됩니다.
제공되는 경우
content는 다음 중 하나일 수 있습니다:다른 Archive: 아카이브가 새 아카이브의 하위 아카이브가 됩니다.
문자열: 로컬 폴더 또는 파일의 이름이어야 합니다.
pathlib.Path객체도 지원됩니다.폴더 는 하위 아카이브로 변환되므로 파일(및 모든 하위 폴더)을 이름으로 접근할 수 있습니다.
파일 은
"rb"모드로 읽히며 이 바이너리 데이터(bytes객체)는 단일 멤버 하위 아카이브로 처리됩니다. 이 경우path매개변수는 필수 이며 이 항목을 찾거나 검색할 수 있는 멤버 이름이어야 합니다.
zipfile.ZipFile또는tarfile.TarFile객체: 하위 아카이브로 추가됩니다.Python 바이너리 객체(
bytes,bytearray,io.BytesIO): 단일 멤버 하위 아카이브를 추가합니다. 이 경우path매개변수는 필수 이며 이 항목을 찾거나 검색할 수 있는 멤버 이름이어야 합니다.튜플
(data, name): 멤버 이름name을 가진 단일 멤버 하위 아카이브를 추가합니다.data는 Python 바이너리 객체이거나 로컬 파일 이름일 수 있습니다(이 경우 바이너리 파일 내용이 사용됨).path를 지정해야 하는 경우 이 형식을 사용하세요.Python 시퀀스: 위 항목의 임의 조합을 지정하는 편의 형식입니다.
제공되는 경우
path는 문자열이어야 합니다.content가 바이너리 데이터이거나 파일 이름인 경우 이 매개변수는 필수이며 데이터를 찾을 수 있는 이름이어야 합니다.그렇지 않으면 이 매개변수는 선택 사항입니다. 폴더 이름이나 마운트 포인트를 시뮬레이션하는 데 사용할 수 있으며, 이 하위 아카이브의 요소를 찾을 수 있습니다. 예를 들어 이 사양
Archive((data, "name"), "path")는data가 요소 이름"path/name"을 사용하여 찾을 수 있음을 의미합니다. 다른 하위 아카이브도 마찬가지입니다: ZIP 하위 아카이브의 멤버를 검색하려면 이름에"path/"접두사가 있어야 합니다. 이 매개변수의 주요 목적은 아마도 중복 이름을 구분하는 것입니다.
참고
아카이브에 중복 항목 이름이 존재하는 경우 항상 해당 이름의 마지막 항목이 찾아지거나 검색됩니다. 아카이브 생성 중 또는 아카이브에 더 많은 데이터를 추가하는 동안(
Archive.add()참조) 중복 확인이 수행되지 않습니다. 이를 방지하려면path매개변수를 사용하세요.
- add(content[, path])¶
하위 아카이브를 추가합니다. 매개변수의 의미는 위에서 설명한 것과 정확히 같습니다. 물론 여기서는
content매개변수가 선택 사항이 아닙니다.
- has_entry(name)¶
항목이 하위 아카이브 중 하나에 존재하는지 확인합니다.
- 매개변수:
name (str) – 항목의 정규화된 이름. 항목의 하위 아카이브가 추가된
path접두사를 포함해야 합니다.- 반환:
True또는False.
- read_entry(name)¶
항목의 데이터를 검색합니다.
- 매개변수:
name (str) – 항목의 정규화된 이름. 항목의 하위 아카이브가 추가된
path접두사를 포함해야 합니다.- 반환:
항목의 바이너리 데이터(
bytes). 찾을 수 없으면 예외가 발생합니다.
- entry_list¶
아카이브의 하위 아카이브 목록. 각 목록 항목은 다음 키를 가진 딕셔너리입니다:
entries– 이 하위 아카이브의 (최상위) 항목 이름 목록.fmt– 하위 아카이브의 형식. 문자열 “dir”(파일 폴더), “zip”(ZIP 아카이브), “tar”(TAR 아카이브) 또는 단일 바이너리 항목이나 파일 내용의 경우 “tree” 중 하나입니다.path– 이 하위 아카이브가 추가된path매개변수의 값.
예제:
>>> from pprint import pprint >>> import pymupdf >>> dir1 = "fitz-32" # a folder name >>> dir2 = "fitz-64" # a folder name >>> img = ("nur-ruhig.jpg", "img") # an image file >>> members = (dir1, img, dir2) # we want to append these in one go >>> arch = pymupdf.Archive() >>> arch.add(members, path="mypath") >>> pprint(arch.entry_list) [{'entries': ['310', '37', '38', '39'], 'fmt': 'dir', 'path': 'mypath'}, {'entries': ['img'], 'fmt': 'tree', 'path': 'mypath'}, {'entries': ['310', '311', '37', '38', '39', 'pypy'], 'fmt': 'dir', 'path': 'mypath'}] >>>
