Hỗ trợ sắp xếp dữ liệu¶
Các quy trình này cho phép mã C hoạt động với các đối tượng được tuần tự hóa bằng cách sử dụng cùng định dạng dữ liệu như mô-đun marshal. Có các chức năng ghi dữ liệu vào định dạng tuần tự hóa và các chức năng bổ sung có thể được sử dụng để đọc lại dữ liệu. Các tệp được sử dụng để lưu trữ dữ liệu được sắp xếp theo thứ tự phải được mở ở chế độ nhị phân.
Các giá trị số được lưu trữ với byte có trọng số thấp nhất trước tiên.
Mô-đun này hỗ trợ một số phiên bản định dạng dữ liệu; xem Python module documentation để biết chi tiết.
-
Py_MARSHAL_VERSION¶
Phiên bản định dạng hiện tại. Xem
marshal.version.
-
void PyMarshal_WriteLongToFile(long value, FILE *file, int version)¶
Sắp xếp một số nguyên long, value, thành file. Điều này sẽ chỉ ghi 32 bit ít quan trọng nhất của value; bất kể kích thước của loại long gốc. version cho biết định dạng tệp.
Chức năng này có thể thất bại, trong trường hợp đó nó sẽ đặt chỉ báo lỗi. Sử dụng
PyErr_Occurred()để kiểm tra điều đó.
-
void PyMarshal_WriteObjectToFile(PyObject *value, FILE *file, int version)¶
Sắp xếp một đối tượng Python, value, thành file. version cho biết định dạng tệp.
Chức năng này có thể thất bại, trong trường hợp đó nó sẽ đặt chỉ báo lỗi. Sử dụng
PyErr_Occurred()để kiểm tra điều đó.
-
PyObject *PyMarshal_WriteObjectToString(PyObject *value, int version)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng byte chứa biểu diễn được sắp xếp theo thứ tự của value. version cho biết định dạng tệp.
Các hàm sau đây cho phép đọc lại các giá trị đã sắp xếp theo thứ tự.
-
long PyMarshal_ReadLongFromFile(FILE *file)¶
Trả về C long từ luồng dữ liệu trong FILE* được mở để đọc. Chỉ có thể đọc giá trị 32 bit khi sử dụng chức năng này, bất kể kích thước gốc của long.
Nếu có lỗi, hãy đặt ngoại lệ thích hợp (
EOFError) và trả về-1.
-
int PyMarshal_ReadShortFromFile(FILE *file)¶
Trả về C short từ luồng dữ liệu trong FILE* được mở để đọc. Chỉ có thể đọc giá trị 16 bit khi sử dụng chức năng này, bất kể kích thước gốc của short.
Nếu có lỗi, hãy đặt ngoại lệ thích hợp (
EOFError) và trả về-1.
-
PyObject *PyMarshal_ReadObjectFromFile(FILE *file)¶
- Giá trị trả về: Tham chiếu mới.
Trả về đối tượng Python từ luồng dữ liệu trong FILE* được mở để đọc.
Nếu có lỗi, hãy đặt ngoại lệ thích hợp (
EOFError,ValueErrorhoặcTypeError) và trả vềNULL.
-
PyObject *PyMarshal_ReadLastObjectFromFile(FILE *file)¶
- Giá trị trả về: Tham chiếu mới.
Trả về đối tượng Python từ luồng dữ liệu trong FILE* được mở để đọc. Không giống như
PyMarshal_ReadObjectFromFile(), hàm này giả định rằng sẽ không có đối tượng nào khác được đọc từ tệp, cho phép nó tải mạnh dữ liệu tệp vào bộ nhớ để quá trình khử tuần tự hóa có thể hoạt động từ dữ liệu trong bộ nhớ thay vì đọc từng byte một từ tệp. Chỉ sử dụng biến thể này nếu bạn chắc chắn rằng mình sẽ không đọc bất kỳ nội dung nào khác từ tệp.Nếu có lỗi, hãy đặt ngoại lệ thích hợp (
EOFError,ValueErrorhoặcTypeError) và trả vềNULL.
-
PyObject *PyMarshal_ReadObjectFromString(const char *data, Py_ssize_t len)¶
- Giá trị trả về: Tham chiếu mới.
Trả về một đối tượng Python từ luồng dữ liệu trong bộ đệm byte chứa byte len được trỏ bởi data.
Nếu có lỗi, hãy đặt ngoại lệ thích hợp (
EOFError,ValueErrorhoặcTypeError) và trả vềNULL.