]> granicus.if.org Git - python/commitdiff
Fix issue1789: The tutorial contained a misuse of the struct module.
authorGregory P. Smith <greg@mad-scientist.com>
Thu, 24 Jan 2008 09:38:26 +0000 (09:38 +0000)
committerGregory P. Smith <greg@mad-scientist.com>
Thu, 24 Jan 2008 09:38:26 +0000 (09:38 +0000)
(also remove an unneeded import struct from test_largefile)

Doc/library/struct.rst
Doc/tutorial/stdlib2.rst
Lib/test/test_largefile.py

index d4952bbf04d828b6c00baf70abc0549f8d84f922..d0960edf4548c5c0fc2e125656286afae14d943e 100644 (file)
@@ -85,7 +85,7 @@ Python values should be obvious given their types:
 +--------+-------------------------+--------------------+-------+
 | ``i``  | :ctype:`int`            | integer            |       |
 +--------+-------------------------+--------------------+-------+
-| ``I``  | :ctype:`unsigned int`   | long               |       |
+| ``I``  | :ctype:`unsigned int`   | integer or long    |       |
 +--------+-------------------------+--------------------+-------+
 | ``l``  | :ctype:`long`           | integer            |       |
 +--------+-------------------------+--------------------+-------+
@@ -104,7 +104,7 @@ Python values should be obvious given their types:
 +--------+-------------------------+--------------------+-------+
 | ``p``  | :ctype:`char[]`         | string             |       |
 +--------+-------------------------+--------------------+-------+
-| ``P``  | :ctype:`void \*`        | integer            |       |
+| ``P``  | :ctype:`void \*`        | long               |       |
 +--------+-------------------------+--------------------+-------+
 
 Notes:
index 14c60ddcb977f12c7e7d2edae7f28158ba82f2d3..73a896d29a18d2e39b4a2cd971c4c4b2fb9b225d 100644 (file)
@@ -134,8 +134,10 @@ Working with Binary Data Record Layouts
 
 The :mod:`struct` module provides :func:`pack` and :func:`unpack` functions for
 working with variable length binary record formats.  The following example shows
-how to loop through header information in a ZIP file (with pack codes ``"H"``
-and ``"L"`` representing two and four byte unsigned numbers respectively)::
+how to loop through header information in a ZIP file without using the
+:mod:`zipfile` module.  Pack codes ``"H"`` and ``"I"`` represent two and four
+byte unsigned numbers respectively.  The ``"<"`` indicates that they are
+standard size and in little-endian byte order::
 
    import struct
 
@@ -143,7 +145,7 @@ and ``"L"`` representing two and four byte unsigned numbers respectively)::
    start = 0
    for i in range(3):                      # show the first 3 file headers
        start += 14
-       fields = struct.unpack('LLLHH', data[start:start+16])
+       fields = struct.unpack('<IIIHH', data[start:start+16])
        crc32, comp_size, uncomp_size, filenamesize, extra_size = fields
 
        start += 16
index 4dca97ffd80b356be52c188cd9a5c8a2a6a02967..5731892062609b4fb59f8c301f589521bca94d68 100644 (file)
@@ -6,7 +6,7 @@
 #----------------------------------------------------------------------
 
 from test import test_support
-import os, struct, stat, sys
+import os, stat, sys
 
 try:
     import signal