Là con trăn 32 bit int?

Trả về đối tượng bytes chứa các giá trị v1, v2,… được đóng gói theo định dạng chuỗi định dạng. Các đối số phải khớp chính xác với các giá trị theo yêu cầu của định dạng

cấu trúc. pack_into[định dạng , bộ đệm , độ lệch , v1 , v2 , . ]

Đóng gói các giá trị v1, v2, … theo định dạng chuỗi định dạng và ghi các byte đã đóng gói vào bộ đệm đệm có thể ghi bắt đầu từ vị trí offset. Lưu ý rằng offset là đối số bắt buộc

cấu trúc. giải nén[định dạng , bộ đệm]

Giải nén từ bộ đệm đệm [có lẽ được đóng gói bởi

>>> pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
2

tự nhiên

tự nhiên

tự nhiên

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
3

tự nhiên

Tiêu chuẩn

không ai

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
4

người tí hon

Tiêu chuẩn

không ai

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
5

người lớn

Tiêu chuẩn

không ai

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
6

mạng [= big-endian]

Tiêu chuẩn

không ai

Nếu ký tự đầu tiên không phải là một trong số này, thì

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
7 được giả định

Thứ tự byte gốc là big-endian hoặc little-endian, tùy thuộc vào hệ thống máy chủ. Ví dụ: Intel x86, AMD64 [x86-64] và Apple M1 là ít cấp cuối; . Sử dụng

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
8 để kiểm tra độ bền của hệ thống của bạn

Kích thước gốc và căn chỉnh được xác định bằng cách sử dụng biểu thức

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
9 của trình biên dịch C. Điều này luôn được kết hợp với thứ tự byte gốc

Kích thước chuẩn chỉ phụ thuộc vào ký tự định dạng; . Format Characters section.

Lưu ý sự khác biệt giữa

>>> pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
7 và
>>> pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack[">h", 99999]
Traceback [most recent call last]:
  File "", line 1, in 
struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
b'123'
>>> pack["@3s", b'123']
b'123'
7]. Đối với kích thước tiêu chuẩn, bạn có thể sử dụng bất kỳ định dạng số nguyên nào khác phù hợp với ứng dụng của mình

  • Đối với các mã chuyển đổi

    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    30 và
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    30 hoặc
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    35 chỉ khả dụng cho thứ tự byte gốc [được chọn làm mặc định hoặc với ký tự thứ tự byte
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    7]. Ký tự thứ tự byte
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    35 không khả dụng

  • Loại "chính xác một nửa" của IEEE 754 nhị phân16 được giới thiệu trong bản sửa đổi năm 2008 của tiêu chuẩn IEEE 754. Nó có bit dấu, số mũ 5 bit và độ chính xác 11 bit [với 10 bit được lưu trữ rõ ràng] và có thể biểu thị các số trong khoảng từ khoảng

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    39 đến
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    30 với độ chính xác đầy đủ. Loại này không được trình biên dịch C hỗ trợ rộng rãi. trên một máy thông thường, một ký tự ngắn không dấu có thể được sử dụng để lưu trữ, nhưng không dùng cho các phép toán. Xem trang Wikipedia về định dạng dấu chấm động nửa chính xác để biết thêm thông tin

  • Khi đóng gói, ________ 631 chèn một byte NULL

  • Ký tự định dạng

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    32 mã hóa một “chuỗi Pascal”, nghĩa là một chuỗi ngắn có độ dài thay đổi được lưu trữ trong một số byte cố định, được cung cấp bởi số đếm. Byte đầu tiên được lưu trữ là độ dài của chuỗi hoặc 255, tùy theo giá trị nào nhỏ hơn. Các byte của chuỗi theo sau. Nếu chuỗi được truyền vào
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    33 quá dài [dài hơn số đếm trừ đi 1], thì chỉ các byte đầu tiên của chuỗi
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    34 được lưu trữ. Nếu chuỗi ngắn hơn
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    34, nó sẽ được đệm bằng các byte rỗng để sử dụng chính xác các byte đếm được trong tất cả. Lưu ý rằng đối với
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    36, ký tự định dạng
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    32 tiêu thụ
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    38 byte, nhưng chuỗi được trả về không bao giờ được chứa nhiều hơn 255 byte

  • Đối với ký tự định dạng

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    39, số đếm được hiểu là độ dài của byte, không phải số đếm lặp lại như đối với các ký tự định dạng khác; . g. ,
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    32] ánh xạ tới hoặc từ mười đối tượng byte Python khác nhau. [Xem Ví dụ để minh họa cụ thể về sự khác biệt. ] Nếu số đếm không được đưa ra, nó sẽ mặc định là 1. Để đóng gói, chuỗi được cắt bớt hoặc đệm bằng các byte rỗng nếu thích hợp để làm cho nó vừa vặn. Để giải nén, đối tượng byte kết quả luôn có chính xác số byte đã chỉ định. Trong trường hợp đặc biệt,
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    33 có nghĩa là một chuỗi trống, đơn [trong khi
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    34 có nghĩa là 0 ký tự].

  • Một ký tự định dạng có thể được bắt đầu bằng một số lặp tích phân. Ví dụ, chuỗi định dạng

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    35 có nghĩa hoàn toàn giống với
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    36

    Các ký tự khoảng trắng giữa các định dạng bị bỏ qua;

    Khi đóng gói một giá trị

    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    38,
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    39,
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    7 hoặc thiếu bất kỳ ký tự tiền tố nào] có thể không khớp với những gì máy của người đọc tạo ra vì điều đó phụ thuộc vào nền tảng và trình biên dịch

    Đóng gói và giải nén các số nguyên có ba kích thước khác nhau, sử dụng thứ tự big endian

    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    39 và
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    

    Các trường đã giải nén có thể được đặt tên bằng cách gán chúng cho các biến hoặc bằng cách gói kết quả vào một bộ dữ liệu được đặt tên

    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    2 để chỉ định thứ tự byte gốc và kích thước dữ liệu. Các byte đệm bên trong thường được chèn tự động. Có thể cần một mã định dạng không lặp lại ở cuối chuỗi định dạng để làm tròn đến ranh giới byte chính xác để căn chỉnh chính xác các khối dữ liệu liên tiếp

    Hãy xem xét hai ví dụ đơn giản này [trên máy 64-bit, little endian]

    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    3

    Mã định dạng

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    31 có thể được sử dụng để chỉ định lặp lại, nhưng đối với các định dạng gốc, tốt hơn là sử dụng định dạng không lặp lại như
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    7

    Định dạng chuẩn¶

    Khi trao đổi dữ liệu ngoài quy trình của bạn, chẳng hạn như kết nối mạng hoặc lưu trữ, hãy chính xác. Chỉ định thứ tự byte, kích thước và căn chỉnh chính xác. Đừng cho rằng chúng khớp với thứ tự gốc của một máy cụ thể. Ví dụ: thứ tự byte mạng là big-endian, trong khi nhiều CPU phổ biến là little-endian. Bằng cách xác định điều này một cách rõ ràng, người dùng không cần quan tâm đến các chi tiết cụ thể của nền tảng mà mã của họ đang chạy trên đó. Ký tự đầu tiên thường phải là

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    4 hoặc
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    5 [hoặc
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    6]. Đệm là trách nhiệm của lập trình viên. Ký tự định dạng không lặp lại sẽ không hoạt động. Thay vào đó, người dùng phải thêm một cách rõ ràng các byte pad
    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    31 khi cần. Xem lại các ví dụ ở phần trước, ta có

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    3

    Các kết quả trên [được thực thi trên máy 64 bit] không được đảm bảo khớp khi thực hiện trên các máy khác nhau. Ví dụ: các ví dụ bên dưới được thực thi trên máy 32 bit

    >>> pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    3

    Các lớp học¶

    Mô-đun

    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    33, sử dụng định dạng được biên dịch. [______039 sẽ bằng
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    36, sử dụng định dạng được biên dịch. Kích thước của bộ đệm theo byte phải bằng
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 > pack["@ccc", b'1', b'2', b'3']
    b'123'
    >>> pack["@3s", b'123']
    b'123'
    
    33] tương ứng với
    >>> pack[">h", 99999]
    Traceback [most recent call last]:
      File "", line 1, in 
    struct.error: 'h' format requires -32768 

    Chủ Đề