importlib.resources.abc -- Các lớp cơ sở trừu tượng cho tài nguyên¶
Source code: Lib/importlib/resources/abc.py
Added in version 3.11.
- class importlib.resources.abc.ResourceReader¶
Superseded by TraversableResources
Một abstract base class để cung cấp khả năng đọc resources.
Từ quan điểm của ABC này, resource là một tạo phẩm nhị phân được vận chuyển trong một gói hàng. Thông thường, đây giống như một tệp dữ liệu nằm bên cạnh tệp
__init__.pycủa gói. Mục đích của lớp này là giúp tóm tắt việc truy cập các tệp dữ liệu đó để không thành vấn đề nếu gói và (các) tệp dữ liệu của nó được lưu trữ, ví dụ: trong tệp zip so với trên hệ thống tệp.Đối với bất kỳ phương thức nào của lớp này, đối số resource được mong đợi là path-like object đại diện về mặt khái niệm chỉ là tên tệp. Điều này có nghĩa là không có đường dẫn thư mục con nào được đưa vào đối số resource. Điều này là do vị trí của gói mà trình đọc dành cho đóng vai trò là "thư mục". Do đó, phép ẩn dụ cho các thư mục và tên tệp tương ứng là các gói và tài nguyên. Đây cũng là lý do tại sao các phiên bản của lớp này dự kiến sẽ tương quan trực tiếp với một gói cụ thể (thay vì có khả năng đại diện cho nhiều gói hoặc một mô-đun).
Các trình tải muốn hỗ trợ việc đọc tài nguyên phải cung cấp một phương thức có tên là
get_resource_reader(fullname)để trả về một đối tượng triển khai giao diện của ABC này. Nếu mô-đun được chỉ định bởi tên đầy đủ không phải là một gói thì phương thức này sẽ trả vềNone. Một đối tượng tương thích với ABC này chỉ nên được trả về khi mô-đun được chỉ định là một gói.Sắp loại bỏ từ phiên bản 3.12: Thay vào đó hãy sử dụng
importlib.resources.abc.TraversableResources.- abstractmethod open_resource(resource)¶
Trả về một file-like object đã mở để đọc nhị phân của resource.
Nếu không tìm thấy tài nguyên,
FileNotFoundErrorsẽ được nâng lên.
- abstractmethod resource_path(resource)¶
Trả về đường dẫn hệ thống tập tin tới resource.
Nếu tài nguyên không tồn tại cụ thể trên hệ thống tệp, hãy nâng cao
FileNotFoundError.
- abstractmethod is_resource(path)¶
Trả về
Truenếu path có tên được coi là tài nguyên.FileNotFoundErrorđược nâng lên nếu path không tồn tại.Thay đổi trong phiên bản 3.10: Đối số name được đổi tên thành path.
- abstractmethod contents()¶
Trả về một chuỗi iterable trong nội dung của gói. Xin lưu ý rằng không bắt buộc tất cả các tên được trình vòng lặp trả về phải là tài nguyên thực, ví dụ: có thể chấp nhận trả lại tên mà
is_resource()sẽ sai.Việc cho phép trả về các tên không phải tài nguyên là cho phép các trường hợp trong đó cách gói và tài nguyên của nó được lưu trữ được biết trước và các tên không phải tài nguyên sẽ hữu ích. Ví dụ: cho phép trả về tên thư mục con để khi biết gói và tài nguyên được lưu trữ trên hệ thống tệp thì các tên thư mục con đó có thể được sử dụng trực tiếp.
Phương thức trừu tượng trả về một lần lặp không có mục nào.
- class importlib.resources.abc.Traversable¶
Một đối tượng có tập hợp con các phương thức
pathlib.Pathphù hợp để duyệt qua các thư mục và mở tệp.Để thể hiện đối tượng trên hệ thống tệp, hãy sử dụng
importlib.resources.as_file().- name¶
Trừu tượng. Tên cơ sở của đối tượng này mà không có bất kỳ tham chiếu gốc nào.
- abstractmethod iterdir()¶
Mang lại các đối tượng có thể truyền tải trong chính nó.
- abstractmethod is_dir()¶
Trả về
Truenếu self là một thư mục.
- abstractmethod is_file()¶
Trả về
Truenếu self là một tập tin.
- abstractmethod joinpath(*pathsegments)¶
Duyệt qua các thư mục theo pathsegments và trả về kết quả là
Traversable.Mỗi đối số pathsegments có thể chứa nhiều tên được phân tách bằng dấu gạch chéo lên (
/,posixpath.sep). Ví dụ: những điều sau đây là tương đương:files.joinpath('subdir', 'subsuddir', 'file.txt') files.joinpath('subdir/subsuddir/file.txt')
Lưu ý rằng một số triển khai
Traversablecó thể không được cập nhật lên phiên bản mới nhất của giao thức. Để tương thích với các cách triển khai như vậy, hãy cung cấp một đối số duy nhất không có dấu phân cách đường dẫn cho mỗi lệnh gọi tớijoinpath. Ví dụ:files.joinpath('subdir').joinpath('subsubdir').joinpath('file.txt')
Thay đổi trong phiên bản 3.11:
joinpathchấp nhận nhiều pathsegments và các phân đoạn này có thể chứa dấu gạch chéo lên làm dấu phân cách đường dẫn. Trước đây, chỉ một đối số child duy nhất được chấp nhận.
- abstractmethod __truediv__(child)¶
Trả về bản thân đứa trẻ có thể đi qua. Tương đương với
joinpath(child).
- abstractmethod open(mode='r', *args, **kwargs)¶
mode có thể là 'r' hoặc 'rb' để mở dưới dạng văn bản hoặc nhị phân. Trả lại một tay cầm phù hợp để đọc (giống như
pathlib.Path.open).Khi mở dưới dạng văn bản, chấp nhận các tham số mã hóa, chẳng hạn như các tham số được
io.TextIOWrapperchấp nhận.
- read_bytes()¶
Đọc nội dung của bản thân dưới dạng byte.
- read_text(encoding=None)¶
Đọc nội dung của bản thân dưới dạng văn bản.
- class importlib.resources.abc.TraversableResources¶
Một lớp cơ sở trừu tượng dành cho các trình đọc tài nguyên có khả năng phục vụ giao diện
importlib.resources.files(). Các lớp conResourceReadervà cung cấp các triển khai cụ thể các phương thức trừu tượng củaResourceReader. Do đó, bất kỳ bộ nạp nào cung cấpTraversableResourcescũng cung cấpResourceReader.Các trình tải muốn hỗ trợ việc đọc tài nguyên phải triển khai giao diện này.
- abstractmethod files()¶
Trả về đối tượng
importlib.resources.abc.Traversablecho gói đã tải.