python struct 中 格式的意思

wenking2006 2009-07-08 09:13:07
python struct 中 格式的意思是什么呢?

如 s ,c,I,h 等等
还有 !@ > < 英文的文档 而且例子也少 没看明白,请高手指点一下吧,最好举例说明一下 谢谢啦
...全文
184 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
不得闲 2009-07-10
  • 打赏
  • 举报
回复
@: native order, size & alignment (default)
=: native order, std. size & alignment
<: little-endian, std. size & alignment
>: big-endian, std. size & alignment
!: same as >
这里也写的很清楚嘛!
@ 使用本地字节序,默认
= 使用本地字节序,标准方式
< 使用本地字节序,小末端对齐
> 使用本地字节序,大末端对齐
! 和>一样
不得闲 2009-07-10
  • 打赏
  • 举报
回复
struct.unpack是用来使用类似C语言中的结构体的方式的
比如
struct.pack(' <bib',1,24,True)
这个就标识一个
struct
{
BOOL a1;
int a2;
boolean a3;
}
就类似于Delphi中的
TtestPack = packed record
a1: BOOL;
a2: integer;
a3: boolean;
end;

struct.pack(' <bib',1,24,True)

<bib这个东西就是不要经过对齐,所以是对应的6个字节
bib的话,这个东西会自动对齐,所以出来的是8个字节
wenking2006 2009-07-10
  • 打赏
  • 举报
回复
大侠 谢谢你了 你别晕啊
估计你也看了 我发了几个关于Python struct的帖子了,你也回答了我的2个帖子了 谢谢了
你说的英文写的很清楚 我看不懂啊 我认字 但是没例子 不知道到底干什么的啊 听你的解释 明白点了

不过你把同样的回答放到了我的2个帖子里面了 呵呵
plutoclover 2009-07-09
  • 打赏
  • 举报
回复
http://www.python.org/doc/2.5.2/lib/module-struct.html
官方的文档就有详细说明,也有例子。
wenking2006 2009-07-09
  • 打赏
  • 举报
回复
楼上的高手,请问有中文的么?
我真的看不太明白啊 谢谢了

wenking2006 2009-07-08
  • 打赏
  • 举报
回复
楼上的大侠 这一大堆英文的 我看不懂啊 也没个例子...
plutoclover 2009-07-08
  • 打赏
  • 举报
回复
>>> help(struct)
Help on module struct:

NAME
struct

FILE
c:\python25\lib\struct.py

DESCRIPTION
Functions to convert between Python values and C structs.
Python strings are used to hold the data representing the C struct
and also as format strings to describe the layout of data in the C struct.

The optional first format char indicates byte order, size and alignment:
@: native order, size & alignment (default)
=: native order, std. size & alignment
<: little-endian, std. size & alignment
>: big-endian, std. size & alignment
!: same as >

The remaining chars indicate types of args and must match exactly;
these can be preceded by a decimal repeat count:
x: pad byte (no data); c:char; b:signed byte; B:unsigned byte;
h:short; H:unsigned short; i:int; I:unsigned int;
l:long; L:unsigned long; f:float; d:double.
Special cases (preceding decimal count indicates length):
s:string (array of char); p: pascal string (with count byte).
Special case (only available in native format):
P:an integer type that is wide enough to hold a pointer.
Special case (not in native mode unless 'long long' in platform C):
q:long long; Q:unsigned long long
Whitespace between formats is ignored.

The variable struct.error is an exception raised on errors.

CLASSES
exceptions.Exception(exceptions.BaseException)
error

class error(exceptions.Exception)
| Method resolution order:
| error
| exceptions.Exception
| exceptions.BaseException
| __builtin__.object
|
| Data descriptors defined here:
|
| __weakref__
| list of weak references to the object (if defined)
|
| ----------------------------------------------------------------------
| Methods inherited from exceptions.Exception:
|
| __init__(...)
| x.__init__(...) initializes x; see x.__class__.__doc__ for signature
|
| ----------------------------------------------------------------------
| Data and other attributes inherited from exceptions.Exception:
|
| __new__ = <built-in method __new__ of type object at 0x1E1CCBE8>
| T.__new__(S, ...) -> a new object with type S, a subtype of T
|
| ----------------------------------------------------------------------
| Methods inherited from exceptions.BaseException:
|
| __delattr__(...)
| x.__delattr__('name') <==> del x.name
|
| __getattribute__(...)
| x.__getattribute__('name') <==> x.name
|
| __getitem__(...)
| x.__getitem__(y) <==> x[y]
|
| __getslice__(...)
| x.__getslice__(i, j) <==> x[i:j]
|
| Use of negative indices is not supported.
|
| __reduce__(...)
|
| __repr__(...)
| x.__repr__() <==> repr(x)
|
| __setattr__(...)
| x.__setattr__('name', value) <==> x.name = value
|
| __setstate__(...)
|
| __str__(...)
| x.__str__() <==> str(x)
|
| ----------------------------------------------------------------------
| Data descriptors inherited from exceptions.BaseException:
|
| __dict__
|
| args
|
| message
| exception message

FUNCTIONS
calcsize(fmt)
Return size of C struct described by format string fmt.
See struct.__doc__ for more on format strings.

pack(fmt, *args)
Return string containing values v1, v2, ... packed according to fmt.
See struct.__doc__ for more on format strings.

pack_into(fmt, buf, offset, *args)
Pack the values v1, v2, ... according to fmt, write
the packed bytes into the writable buffer buf starting at offset.
See struct.__doc__ for more on format strings.

unpack(fmt, s)
Unpack the string, containing packed C structure data, according
to fmt. Requires len(string)==calcsize(fmt).
See struct.__doc__ for more on format strings.

unpack_from(fmt, buf, offset=0)
Unpack the buffer, containing packed C structure data, according to
fmt starting at offset. Requires len(buffer[offset:]) >= calcsize(fmt).
See struct.__doc__ for more on format strings.

DATA
__version__ = '0.1'

VERSION
0.1

37,720

社区成员

发帖
与我相关
我的任务
社区描述
JavaScript,VBScript,AngleScript,ActionScript,Shell,Perl,Ruby,Lua,Tcl,Scala,MaxScript 等脚本语言交流。
社区管理员
  • 脚本语言(Perl/Python)社区
  • IT.BOB
加入社区
  • 近7日
  • 近30日
  • 至今

试试用AI创作助手写篇文章吧