pickletools --- Công cụ dành cho nhà phát triển dưa chua¶
Source code: Lib/pickletools.py
Mô-đun này chứa nhiều hằng số khác nhau liên quan đến các chi tiết chi tiết của mô-đun pickle, một số nhận xét dài dòng về cách triển khai và một số chức năng hữu ích để phân tích dữ liệu được chọn. Nội dung của mô-đun này hữu ích cho các nhà phát triển cốt lõi của Python đang làm việc trên pickle; Người dùng thông thường của mô-đun pickle có thể sẽ không thấy mô-đun pickletools có liên quan.
Sử dụng dòng lệnh¶
Added in version 3.2.
Khi được gọi từ dòng lệnh, python -m pickletools sẽ phân tách nội dung của một hoặc nhiều tệp dưa chua. Lưu ý rằng nếu bạn muốn xem đối tượng Python được lưu trữ trong dưa chua thay vì chi tiết về định dạng dưa chua, bạn có thể muốn sử dụng -m pickle thay thế. Tuy nhiên, khi tệp dưa chua mà bạn muốn kiểm tra đến từ một nguồn không đáng tin cậy, -m pickletools là một tùy chọn an toàn hơn vì nó không thực thi mã byte dưa chua.
Ví dụ: với một bộ (1, 2) được chọn trong tệp x.pickle:
$ python -m dưa x.pickle
(1, 2)
$ python -m dưa chua x.pickle
0: \x80 PROTO 3
2: K BININT1 1
4: K BININT1 2
6: \x86 TUPLE2
7: q BINPUT 0
9: . STOP
giao thức cao nhất trong số các opcodes = 2
Tùy chọn dòng lệnh¶
- -a, --annotate¶
Chú thích mỗi dòng bằng một mô tả opcode ngắn.
- -o, --output=<file>¶
Tên của tập tin nơi đầu ra sẽ được ghi.
- -l, --indentlevel=<num>¶
Số lượng khoảng trống để thụt lề cấp độ MARK mới.
- -m, --memo¶
Khi nhiều đối tượng được tháo rời, hãy lưu giữ bản ghi nhớ giữa các lần tháo rời.
- -p, --preamble=<preamble>¶
Khi có nhiều hơn một tệp dưa chua được chỉ định, hãy in phần mở đầu đã cho trước mỗi lần tháo gỡ.
- pickle_file¶
Một tệp dưa để đọc hoặc
-để biểu thị việc đọc từ đầu vào tiêu chuẩn.
Giao diện lập trình¶
- pickletools.dis(pickle, out=None, memo=None, indentlevel=4, annotate=0)¶
Xuất ra một biểu tượng tháo gỡ dưa chua cho đối tượng giống như tệp out, mặc định là
sys.stdout. pickle có thể là một chuỗi hoặc một đối tượng giống như tệp. memo có thể là một từ điển Python sẽ được sử dụng làm bản ghi nhớ của dưa chua; nó có thể được sử dụng để thực hiện việc tháo rời nhiều dưa chua được tạo bởi cùng một người nhặt. Các cấp độ kế tiếp, được biểu thị bằng mã opcodeMARKtrong luồng, được thụt lề bằng dấu cách indentlevel. Nếu một giá trị khác 0 được cấp cho annotate thì mỗi opcode ở đầu ra sẽ được chú thích bằng một mô tả ngắn. Giá trị của annotate được sử dụng làm gợi ý cho cột nơi chú thích sẽ bắt đầu.Thay đổi trong phiên bản 3.2: Đã thêm tham số annotate.
- pickletools.genops(pickle)¶
Cung cấp iterator trên tất cả các opcode trong một dưa chua, trả về một chuỗi bộ ba
(opcode, arg, pos). opcode là một phiên bản của lớpOpcodeInfo; arg là giá trị được giải mã, dưới dạng đối tượng Python, của đối số của opcode; pos là vị trí đặt opcode này. pickle có thể là một chuỗi hoặc một đối tượng giống như tệp.
- pickletools.optimize(picklestring)¶
Trả về một chuỗi dưa chua tương đương mới sau khi loại bỏ các mã opcode
PUTkhông sử dụng. Quá trình dưa chua được tối ưu hóa ngắn hơn, mất ít thời gian truyền hơn, yêu cầu ít không gian lưu trữ hơn và giải nén hiệu quả hơn.