blob: b8de4281fb89ec33e672a7e26affdb70b35aa4ef [file] [log] [blame]
Raymond Hettinger72348842003-01-25 21:22:52 +00001 Python 2.3 Quick Reference
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002
Guido van Rossumc8180cc1994-08-05 15:57:31 +00003
Raymond Hettinger72348842003-01-25 21:22:52 +00004 25 Jan 2003 upgraded by Raymond Hettinger for Python 2.3
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00005 16 May 2001 upgraded by Richard Gruet and Simon Brunning for Python 2.0
6 2000/07/18 upgraded by Richard Gruet, rgruet@intraware.com for Python 1.5.2
7from V1.3 ref
81995/10/30, by Chris Hoffmann, choffman@vicorp.com
Guido van Rossumc8180cc1994-08-05 15:57:31 +00009
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000010Based on:
11 Python Bestiary, Author: Ken Manheimer, ken.manheimer@nist.gov
12 Python manuals, Authors: Guido van Rossum and Fred Drake
13 What's new in Python 2.0, Authors: A.M. Kuchling and Moshe Zadka
14 python-mode.el, Author: Tim Peters, tim_one@email.msn.com
15
16 and the readers of comp.lang.python
17
18Python's nest: http://www.python.org Developement: http://
19python.sourceforge.net/ ActivePython : http://www.ActiveState.com/ASPN/
20Python/
21newsgroup: comp.lang.python Help desk: help@python.org
Raymond Hettinger72348842003-01-25 21:22:52 +000022Resources: http://starship.python.net/
23 http://www.vex.net/parnassus/
24 http://aspn.activestate.com/ASPN/Cookbook/Python
25FAQ: http://www.python.org/cgi-bin/faqw.py
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000026Full documentation: http://www.python.org/doc/
Raymond Hettinger72348842003-01-25 21:22:52 +000027Excellent reference books:
28 Python Essential Reference by David Beazley (New Riders)
29 Python Pocket Reference by Mark Lutz (O'Reilly)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000030
31
32Invocation Options
33
34python [-diOStuUvxX?] [-c command | script | - ] [args]
35
36 Invocation Options
37Option Effect
Raymond Hettinger72348842003-01-25 21:22:52 +000038-c cmd program passed in as string (terminates option list)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000039-d Outputs parser debugging information (also PYTHONDEBUG=x)
Raymond Hettinger72348842003-01-25 21:22:52 +000040-E ignore environment variables (such as PYTHONPATH)
41-h print this help message and exit
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000042-i Inspect interactively after running script (also PYTHONINSPECT=x) and
43 force prompts, even if stdin appears not to be a terminal
Raymond Hettinger72348842003-01-25 21:22:52 +000044-O optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)
45-OO remove doc-strings in addition to the -O optimizations
46-Q arg division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000047-S Don't perform 'import site' on initialization
48-t Issue warnings about inconsistent tab usage (-tt: issue errors)
49-u Unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000050-v Verbose (trace import statements) (also PYTHONVERBOSE=x)
Raymond Hettinger72348842003-01-25 21:22:52 +000051-W arg : warning control (arg is action:message:category:module:lineno)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000052-x Skip first line of source, allowing use of non-unix Forms of #!cmd
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000053-? Help!
54-c Specify the command to execute (see next section). This terminates the
55command option list (following options are passed as arguments to the command).
56 the name of a python file (.py) to execute read from stdin.
57script Anything afterward is passed as options to python script or command,
58 not interpreted as an option to interpreter itself.
59args passed to script or command (in sys.argv[1:])
60 If no script or command, Python enters interactive mode.
61
62 * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin
63 (Windows).
64
65
66
67Environment variables
68
69 Environment variables
70 Variable Effect
71PYTHONHOME Alternate prefix directory (or prefix;exec_prefix). The
72 default module search path uses prefix/lib
73 Augments the default search path for module files. The format
74 is the same as the shell's $PATH: one or more directory
75 pathnames separated by ':' or ';' without spaces around
76 (semi-)colons!
77PYTHONPATH On Windows first search for Registry key HKEY_LOCAL_MACHINE\
78 Software\Python\PythonCore\x.y\PythonPath (default value). You
79 may also define a key named after your application with a
80 default string value giving the root directory path of your
81 app.
82 If this is the name of a readable file, the Python commands in
83PYTHONSTARTUP that file are executed before the first prompt is displayed in
84 interactive mode (no default).
85PYTHONDEBUG If non-empty, same as -d option
86PYTHONINSPECT If non-empty, same as -i option
87PYTHONSUPPRESS If non-empty, same as -s option
88PYTHONUNBUFFERED If non-empty, same as -u option
89PYTHONVERBOSE If non-empty, same as -v option
90PYTHONCASEOK If non-empty, ignore case in file/module names (imports)
91
92
93
94
95Notable lexical entities
96
97Keywords
98
99 and del for is raise
100 assert elif from lambda return
101 break else global not try
102 class except if or while
Raymond Hettinger72348842003-01-25 21:22:52 +0000103 continue exec import pass yield
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000104 def finally in print
105
106 * (list of keywords in std module: keyword)
107 * Illegitimate Tokens (only valid in strings): @ $ ?
108 * A statement must all be on a single line. To break a statement over
109 multiple lines use "\", as with the C preprocessor.
110 Exception: can always break when inside any (), [], or {} pair, or in
111 triple-quoted strings.
112 * More than one statement can appear on a line if they are separated with
113 semicolons (";").
114 * Comments start with "#" and continue to end of line.
115
116Identifiers
117
118 (letter | "_") (letter | digit | "_")*
119
120 * Python identifiers keywords, attributes, etc. are case-sensitive.
121 * Special forms: _ident (not imported by 'from module import *'); __ident__
122 (system defined name);
123 __ident (class-private name mangling)
124
125Strings
126
127 "a string enclosed by double quotes"
128 'another string delimited by single quotes and with a " inside'
129 '''a string containing embedded newlines and quote (') marks, can be
130 delimited with triple quotes.'''
131 """ may also use 3- double quotes as delimiters """
132 u'a unicode string' U"Another unicode string"
133 r'a raw string where \ are kept (literalized): handy for regular
134 expressions and windows paths!'
135 R"another raw string" -- raw strings cannot end with a \
136 ur'a unicode raw string' UR"another raw unicode"
137
138 Use \ at end of line to continue a string on next line.
139 adjacent strings are concatened, e.g. 'Monty' ' Python' is the same as
140 'Monty Python'.
141 u'hello' + ' world' --> u'hello world' (coerced to unicode)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000142
143 String Literal Escapes
144
145 \newline Ignored (escape newline)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000146 \\ Backslash (\) \e Escape (ESC) \v Vertical Tab (VT)
147 \' Single quote (') \f Formfeed (FF) \OOO char with octal value OOO
148 \" Double quote (") \n Linefeed (LF)
149 \a Bell (BEL) \r Carriage Return (CR) \xHH char with hex value HH
150 \b Backspace (BS) \t Horizontal Tab (TAB)
151 \uHHHH unicode char with hex value HHHH, can only be used in unicode string
152 \UHHHHHHHH unicode char with hex value HHHHHHHH, can only be used in unicode string
153 \AnyOtherChar is left as-is
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000154
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000155 * NUL byte (\000) is NOT an end-of-string marker; NULs may be embedded in
156 strings.
157 * Strings (and tuples) are immutable: they cannot be modified.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000158
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000159Numbers
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000160
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000161 Decimal integer: 1234, 1234567890546378940L (or l)
Raymond Hettinger72348842003-01-25 21:22:52 +0000162 Octal integer: 0177, 0177777777777777777 (begin with a 0)
163 Hex integer: 0xFF, 0XFFFFffffFFFFFFFFFF (begin with 0x or 0X)
164 Long integer (unlimited precision): 1234567890123456
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000165 Float (double precision): 3.14e-10, .001, 10., 1E3
166 Complex: 1J, 2+3J, 4+5j (ends with J or j, + separates (float) real and
167 imaginary parts)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000168
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000169Sequences
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000170
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000171 * String of length 0, 1, 2 (see above)
172 '', '1', "12", 'hello\n'
173 * Tuple of length 0, 1, 2, etc:
174 () (1,) (1,2) # parentheses are optional if len > 0
175 * List of length 0, 1, 2, etc:
176 [] [1] [1,2]
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000177
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000178Indexing is 0-based. Negative indices (usually) mean count backwards from end
179of sequence.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000180
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000181Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to
182'0'; End defaults to 'sequence-length'.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000183
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000184a = (0,1,2,3,4,5,6,7)
185 a[3] ==> 3
186 a[-1] ==> 7
187 a[2:4] ==> (2, 3)
188 a[1:] ==> (1, 2, 3, 4, 5, 6, 7)
189 a[:3] ==> (0, 1, 2)
190 a[:] ==> (0,1,2,3,4,5,6,7) # makes a copy of the sequence.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000191
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000192Dictionaries (Mappings)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000193
Raymond Hettinger72348842003-01-25 21:22:52 +0000194 {} # Zero length empty dictionary
195 {1 : 'first'} # Dictionary with one (key, value) pair
196 {1 : 'first', 'next': 'second'}
197 dict([('one',1),('two',2)]) # Construct a dict from an item list
198 dict('one'=1, 'two'=2) # Construct a dict using keyword args
199 dict.fromkeys(['one', 'keys']) # Construct a dict from a sequence
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000200
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000201Operators and their evaluation order
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000202
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000203 Operators and their evaluation order
204Highest Operator Comment
205 (...) [...] {...} `...` Tuple, list & dict. creation; string
206 conv.
207 s[i] s[i:j] s.attr f(...) indexing & slicing; attributes, fct
208 calls
209 +x, -x, ~x Unary operators
210 x**y Power
Raymond Hettingere685f942003-01-26 03:29:15 +0000211 x*y x/y x%y x//y mult, division, modulo, floor division
Georg Brandlf33d01d2005-08-22 19:35:18 +0000212 x+y x-y addition, subtraction
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000213 x<<y x>>y Bit shifting
214 x&y Bitwise and
215 x^y Bitwise exclusive or
216 x|y Bitwise or
217 x<y x<=y x>y x>=y x==y x!=y Comparison,
218 x<>y identity,
219 x is y x is not y membership
220 x in s x not in s
221 not x boolean negation
222 x and y boolean and
223 x or y boolean or
224Lowest lambda args: expr anonymous function
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000225
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000226Alternate names are defined in module operator (e.g. __add__ and add for +)
Raymond Hettinger72348842003-01-25 21:22:52 +0000227Most operators are overridable.
228
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000229Many binary operators also support augmented assignment:
Raymond Hettinger72348842003-01-25 21:22:52 +0000230 x += 1 # Same as x = x + 1
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000231
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000232
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000233Basic Types and Their Operations
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000234
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000235Comparisons (defined between *any* types)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000236
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000237 Comparisons
238Comparison Meaning Notes
239< strictly less than (1)
240<= less than or equal to
241> strictly greater than
242>= greater than or equal to
243== equal to
244!= or <> not equal to
245is object identity (2)
246is not negated object identity (2)
247
248Notes :
249 Comparison behavior can be overridden for a given class by defining special
250method __cmp__.
Andrew M. Kuchling55be9ea2004-09-10 12:59:54 +0000251 The above comparisons return True or False which are of type bool
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000252(a subclass of int) and behave exactly as 1 or 0 except for their type and
Raymond Hettinger72348842003-01-25 21:22:52 +0000253that they print as True or False instead of 1 or 0.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000254 (1) X < Y < Z < W has expected meaning, unlike C
255 (2) Compare object identities (i.e. id(object)), not object values.
256
257Boolean values and operators
258
259 Boolean values and operators
260 Value or Operator Returns Notes
261None, numeric zeros, empty sequences and False
262mappings
263all other values True
264not x True if x is False, else
265 True
266x or y if x is False then y, else (1)
267 x
268x and y if x is False then x, else (1)
269 y
270
271Notes :
272 Truth testing behavior can be overridden for a given class by defining
273special method __nonzero__.
274 (1) Evaluate second arg only if necessary to determine outcome.
275
276None
277
278 None is used as default return value on functions. Built-in single object
279 with type NoneType.
280 Input that evaluates to None does not print when running Python
281 interactively.
282
283Numeric types
284
285Floats, integers and long integers.
286
287 Floats are implemented with C doubles.
288 Integers are implemented with C longs.
289 Long integers have unlimited size (only limit is system resources)
290
291Operators on all numeric types
292
293 Operators on all numeric types
294 Operation Result
295abs(x) the absolute value of x
296int(x) x converted to integer
297long(x) x converted to long integer
298float(x) x converted to floating point
299-x x negated
300+x x unchanged
301x + y the sum of x and y
302x - y difference of x and y
303x * y product of x and y
304x / y quotient of x and y
305x % y remainder of x / y
306divmod(x, y) the tuple (x/y, x%y)
307x ** y x to the power y (the same as pow(x, y))
308
309Bit operators on integers and long integers
310
311 Bit operators
312Operation >Result
313~x the bits of x inverted
314x ^ y bitwise exclusive or of x and y
315x & y bitwise and of x and y
316x | y bitwise or of x and y
317x << n x shifted left by n bits
318x >> n x shifted right by n bits
319
320Complex Numbers
321
322 * represented as a pair of machine-level double precision floating point
323 numbers.
324 * The real and imaginary value of a complex number z can be retrieved through
325 the attributes z.real and z.imag.
326
327Numeric exceptions
328
329TypeError
330 raised on application of arithmetic operation to non-number
331OverflowError
332 numeric bounds exceeded
333ZeroDivisionError
334 raised when zero second argument of div or modulo op
Raymond Hettingere685f942003-01-26 03:29:15 +0000335FloatingPointError
336 raised when a floating point operation fails
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000337
338Operations on all sequence types (lists, tuples, strings)
339
340 Operations on all sequence types
341Operation Result Notes
Raymond Hettingere685f942003-01-26 03:29:15 +0000342x in s True if an item of s is equal to x, else False
343x not in s False if an item of s is equal to x, else True
Raymond Hettinger72348842003-01-25 21:22:52 +0000344for x in s: loops over the sequence
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000345s + t the concatenation of s and t
346s * n, n*s n copies of s concatenated
347s[i] i'th item of s, origin 0 (1)
348s[i:j] slice of s from i (included) to j (excluded) (1), (2)
349len(s) length of s
350min(s) smallest item of s
351max(s) largest item of (s)
Raymond Hettinger72348842003-01-25 21:22:52 +0000352iter(s) returns an iterator over s. iterators define __iter__ and next()
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000353
354Notes :
355 (1) if i or j is negative, the index is relative to the end of the string,
356ie len(s)+ i or len(s)+j is
357 substituted. But note that -0 is still 0.
358 (2) The slice of s from i to j is defined as the sequence of items with
359index k such that i <= k < j.
360 If i or j is greater than len(s), use len(s). If i is omitted, use
361len(s). If i is greater than or
362 equal to j, the slice is empty.
363
364Operations on mutable (=modifiable) sequences (lists)
365
366 Operations on mutable sequences
367 Operation Result Notes
368s[i] =x item i of s is replaced by x
369s[i:j] = t slice of s from i to j is replaced by t
370del s[i:j] same as s[i:j] = []
371s.append(x) same as s[len(s) : len(s)] = [x]
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000372s.count(x) return number of i's for which s[i] == x
Raymond Hettingere685f942003-01-26 03:29:15 +0000373s.extend(x) same as s[len(s):len(s)]= x
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000374s.index(x) return smallest i such that s[i] == x (1)
375s.insert(i, x) same as s[i:i] = [x] if i >= 0
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000376s.pop([i]) same as x = s[i]; del s[i]; return x (4)
Raymond Hettinger72348842003-01-25 21:22:52 +0000377s.remove(x) same as del s[s.index(x)] (1)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000378s.reverse() reverse the items of s in place (3)
379s.sort([cmpFct]) sort the items of s in place (2), (3)
380
381Notes :
382 (1) raise a ValueError exception when x is not found in s (i.e. out of
383range).
384 (2) The sort() method takes an optional argument specifying a comparison
385fct of 2 arguments (list items) which should
386 return -1, 0, or 1 depending on whether the 1st argument is
387considered smaller than, equal to, or larger than the 2nd
388 argument. Note that this slows the sorting process down considerably.
389 (3) The sort() and reverse() methods modify the list in place for economy
390of space when sorting or reversing a large list.
391 They don't return the sorted or reversed list to remind you of this
392side effect.
Raymond Hettinger72348842003-01-25 21:22:52 +0000393 (4) [New 1.5.2] The optional argument i defaults to -1, so that by default the last
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000394item is removed and returned.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000395
396
397
398Operations on mappings (dictionaries)
399
400 Operations on mappings
401 Operation Result Notes
402len(d) the number of items in d
403d[k] the item of d with key k (1)
404d[k] = x set d[k] to x
405del d[k] remove d[k] from d (1)
406d.clear() remove all items from d
407d.copy() a shallow copy of d
Raymond Hettinger72348842003-01-25 21:22:52 +0000408d.get(k,defaultval) the item of d with key k (4)
Raymond Hettingere685f942003-01-26 03:29:15 +0000409d.has_key(k) True if d has key k, else False
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000410d.items() a copy of d's list of (key, item) pairs (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000411d.iteritems() an iterator over (key, value) pairs (7)
412d.iterkeys() an iterator over the keys of d (7)
413d.itervalues() an iterator over the values of d (7)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000414d.keys() a copy of d's list of keys (2)
415d1.update(d2) for k, v in d2.items(): d1[k] = v (3)
416d.values() a copy of d's list of values (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000417d.pop(k) remove d[k] and return its value
418d.popitem() remove and return an arbitrary (6)
419 (key, item) pair
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000420d.setdefault(k,defaultval) the item of d with key k (5)
421
422 Notes :
423 TypeError is raised if key is not acceptable
424 (1) KeyError is raised if key k is not in the map
425 (2) Keys and values are listed in random order
426 (3) d2 must be of the same type as d1
427 (4) Never raises an exception if k is not in the map, instead it returns
428 defaultVal.
429 defaultVal is optional, when not provided and k is not in the map,
430 None is returned.
431 (5) Never raises an exception if k is not in the map, instead it returns
432 defaultVal, and adds k to map with value defaultVal. defaultVal is
433 optional. When not provided and k is not in the map, None is returned and
434 added to map.
Raymond Hettinger72348842003-01-25 21:22:52 +0000435 (6) Raises a KeyError if the dictionary is emtpy.
436 (7) While iterating over a dictionary, the values may be updated but
437 the keys cannot be changed.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000438
439Operations on strings
440
441Note that these string methods largely (but not completely) supersede the
442functions available in the string module.
443
444
445 Operations on strings
446 Operation Result Notes
447s.capitalize() return a copy of s with only its first character
448 capitalized.
449s.center(width) return a copy of s centered in a string of length width (1)
450 .
451s.count(sub[ return the number of occurrences of substring sub in (2)
452,start[,end]]) string s.
Raymond Hettinger72348842003-01-25 21:22:52 +0000453s.decode(([ return a decoded version of s. (3)
454 encoding
455 [,errors]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000456s.encode([ return an encoded version of s. Default encoding is the
Raymond Hettinger72348842003-01-25 21:22:52 +0000457 encoding current default string encoding. (3)
458 [,errors]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000459s.endswith(suffix return true if s ends with the specified suffix, (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000460 [,start[,end]]) otherwise return False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000461s.expandtabs([ return a copy of s where all tab characters are (4)
462tabsize]) expanded using spaces.
463s.find(sub[,start return the lowest index in s where substring sub is (2)
464[,end]]) found. Return -1 if sub is not found.
465s.index(sub[ like find(), but raise ValueError when the substring is (2)
466,start[,end]]) not found.
Raymond Hettinger72348842003-01-25 21:22:52 +0000467s.isalnum() return True if all characters in s are alphanumeric, (5)
468 False otherwise.
469s.isalpha() return True if all characters in s are alphabetic, (5)
470 False otherwise.
471s.isdigit() return True if all characters in s are digit (5)
472 characters, False otherwise.
473s.islower() return True if all characters in s are lowercase, False (6)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000474 otherwise.
Raymond Hettinger72348842003-01-25 21:22:52 +0000475s.isspace() return True if all characters in s are whitespace (5)
476 characters, False otherwise.
477s.istitle() return True if string s is a titlecased string, False (7)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000478 otherwise.
Raymond Hettinger72348842003-01-25 21:22:52 +0000479s.isupper() return True if all characters in s are uppercase, False (6)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000480 otherwise.
481s.join(seq) return a concatenation of the strings in the sequence
482 seq, seperated by 's's.
483s.ljust(width) return s left justified in a string of length width. (1),
484 (8)
485s.lower() return a copy of s converted to lowercase.
486s.lstrip() return a copy of s with leading whitespace removed.
487s.replace(old, return a copy of s with all occurrences of substring (9)
488new[, maxsplit]) old replaced by new.
489s.rfind(sub[ return the highest index in s where substring sub is (2)
490,start[,end]]) found. Return -1 if sub is not found.
491s.rindex(sub[ like rfind(), but raise ValueError when the substring (2)
492,start[,end]]) is not found.
493s.rjust(width) return s right justified in a string of length width. (1),
494 (8)
495s.rstrip() return a copy of s with trailing whitespace removed.
496s.split([sep[ return a list of the words in s, using sep as the (10)
497,maxsplit]]) delimiter string.
498s.splitlines([ return a list of the lines in s, breaking at line (11)
499keepends]) boundaries.
500s.startswith return true if s starts with the specified prefix,
501(prefix[,start[ otherwise return false. (2)
502,end]])
503s.strip() return a copy of s with leading and trailing whitespace
504 removed.
505s.swapcase() return a copy of s with uppercase characters converted
506 to lowercase and vice versa.
507 return a titlecased copy of s, i.e. words start with
508s.title() uppercase characters, all remaining cased characters
509 are lowercase.
510s.translate(table return a copy of s mapped through translation table (12)
511[,deletechars]) table.
512s.upper() return a copy of s converted to uppercase.
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000513s.zfill(width) return a string padded with zeroes on the left side and
Raymond Hettinger72348842003-01-25 21:22:52 +0000514 sliding a minus sign left if necessary. never truncates.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000515
516Notes :
517 (1) Padding is done using spaces.
518 (2) If optional argument start is supplied, substring s[start:] is
519processed. If optional arguments start and end are supplied, substring s[start:
520end] is processed.
521 (3) Optional argument errors may be given to set a different error handling
522scheme. The default for errors is 'strict', meaning that encoding errors raise
523a ValueError. Other possible values are 'ignore' and 'replace'.
524 (4) If optional argument tabsize is not given, a tab size of 8 characters
525is assumed.
526 (5) Returns false if string s does not contain at least one character.
527 (6) Returns false if string s does not contain at least one cased
528character.
529 (7) A titlecased string is a string in which uppercase characters may only
530follow uncased characters and lowercase characters only cased ones.
531 (8) s is returned if width is less than len(s).
532 (9) If the optional argument maxsplit is given, only the first maxsplit
533occurrences are replaced.
534 (10) If sep is not specified or None, any whitespace string is a separator.
535If maxsplit is given, at most maxsplit splits are done.
536 (11) Line breaks are not included in the resulting list unless keepends is
537given and true.
538 (12) table must be a string of length 256. All characters occurring in the
539optional argument deletechars are removed prior to translation.
540
541String formatting with the % operator
542
543formatString % args--> evaluates to a string
544
545 * formatString uses C printf format codes : %, c, s, i, d, u, o, x, X, e, E,
546 f, g, G, r (details below).
547 * Width and precision may be a * to specify that an integer argument gives
548 the actual width or precision.
549 * The flag characters -, +, blank, # and 0 are understood. (details below)
550 * %s will convert any type argument to string (uses str() function)
551 * args may be a single arg or a tuple of args
552
553 '%s has %03d quote types.' % ('Python', 2) # => 'Python has 002 quote types.'
554
555 * Right-hand-side can also be a mapping:
556
557 a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
558(vars() function very handy to use on right-hand-side.)
559
560 Format codes
561Conversion Meaning
562d Signed integer decimal.
563i Signed integer decimal.
564o Unsigned octal.
565u Unsigned decimal.
566x Unsigned hexidecimal (lowercase).
567X Unsigned hexidecimal (uppercase).
568e Floating point exponential format (lowercase).
569E Floating point exponential format (uppercase).
570f Floating point decimal format.
571F Floating point decimal format.
572g Same as "e" if exponent is greater than -4 or less than precision,
573 "f" otherwise.
574G Same as "E" if exponent is greater than -4 or less than precision,
575 "F" otherwise.
576c Single character (accepts integer or single character string).
577r String (converts any python object using repr()).
578s String (converts any python object using str()).
579% No argument is converted, results in a "%" character in the result.
580 (The complete specification is %%.)
581
582 Conversion flag characters
583Flag Meaning
584# The value conversion will use the ``alternate form''.
5850 The conversion will be zero padded.
586- The converted value is left adjusted (overrides "-").
587 (a space) A blank should be left before a positive number (or empty
588 string) produced by a signed conversion.
589+ A sign character ("+" or "-") will precede the conversion (overrides a
590 "space" flag).
591
592File Objects
593
594Created with built-in function open; may be created by other modules' functions
595as well.
596
597Operators on file objects
598
599 File operations
600 Operation Result
601f.close() Close file f.
602f.fileno() Get fileno (fd) for file f.
603f.flush() Flush file f's internal buffer.
Raymond Hettingere685f942003-01-26 03:29:15 +0000604f.isatty() True if file f is connected to a tty-like dev, else False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000605f.read([size]) Read at most size bytes from file f and return as a string
606 object. If size omitted, read to EOF.
607f.readline() Read one entire line from file f.
608f.readlines() Read until EOF with readline() and return list of lines read.
609 Set file f's position, like "stdio's fseek()".
610f.seek(offset[, whence == 0 then use absolute indexing.
611whence=0]) whence == 1 then offset relative to current pos.
612 whence == 2 then offset relative to file end.
613f.tell() Return file f's current position (byte offset).
614f.write(str) Write string to file f.
615f.writelines(list Write list of strings to file f.
616)
617
618File Exceptions
619
620 EOFError
621 End-of-file hit when reading (may be raised many times, e.g. if f is a
622 tty).
623 IOError
Raymond Hettingere685f942003-01-26 03:29:15 +0000624 Other I/O-related I/O operation failure.
625 OSError
626 OS system call failed.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000627
628
629 Advanced Types
630
631 -See manuals for more details -
632 + Module objects
633 + Class objects
634 + Class instance objects
635 + Type objects (see module: types)
636 + File objects (see above)
637 + Slice objects
638 + XRange objects
639 + Callable types:
640 o User-defined (written in Python):
641 # User-defined Function objects
642 # User-defined Method objects
643 o Built-in (written in C):
644 # Built-in Function objects
645 # Built-in Method objects
646 + Internal Types:
647 o Code objects (byte-compile executable Python code: bytecode)
648 o Frame objects (execution frames)
649 o Traceback objects (stack trace of an exception)
650
651
652 Statements
653
654 pass -- Null statement
655 del name[,name]* -- Unbind name(s) from object. Object will be indirectly
656 (and automatically) deleted only if no longer referenced.
657 print [>> fileobject,] [s1 [, s2 ]* [,]
658 -- Writes to sys.stdout, or to fileobject if supplied.
659 Puts spaces between arguments. Puts newline at end
660 unless statement ends with comma.
661 Print is not required when running interactively,
662 simply typing an expression will print its value,
663 unless the value is None.
664 exec x [in globals [,locals]]
665 -- Executes x in namespaces provided. Defaults
666 to current namespaces. x can be a string, file
667 object or a function object.
668 callable(value,... [id=value], [*args], [**kw])
669 -- Call function callable with parameters. Parameters can
670 be passed by name or be omitted if function
671 defines default values. E.g. if callable is defined as
672 "def callable(p1=1, p2=2)"
673 "callable()" <=> "callable(1, 2)"
674 "callable(10)" <=> "callable(10, 2)"
675 "callable(p2=99)" <=> "callable(1, 99)"
676 *args is a tuple of positional arguments.
677 **kw is a dictionary of keyword arguments.
678
679 Assignment operators
680
681 Caption
682 Operator Result Notes
683 a = b Basic assignment - assign object b to label a (1)
684 a += b Roughly equivalent to a = a + b (2)
685 a -= b Roughly equivalent to a = a - b (2)
686 a *= b Roughly equivalent to a = a * b (2)
687 a /= b Roughly equivalent to a = a / b (2)
688 a %= b Roughly equivalent to a = a % b (2)
689 a **= b Roughly equivalent to a = a ** b (2)
690 a &= b Roughly equivalent to a = a & b (2)
691 a |= b Roughly equivalent to a = a | b (2)
692 a ^= b Roughly equivalent to a = a ^ b (2)
693 a >>= b Roughly equivalent to a = a >> b (2)
694 a <<= b Roughly equivalent to a = a << b (2)
695
696 Notes :
697 (1) Can unpack tuples, lists, and strings.
698 first, second = a[0:2]; [f, s] = range(2); c1,c2,c3='abc'
699 Tip: x,y = y,x swaps x and y.
700 (2) Not exactly equivalent - a is evaluated only once. Also, where
701 possible, operation performed in-place - a is modified rather than
702 replaced.
703
704 Control Flow
705
706 if condition: suite
707 [elif condition: suite]*
708 [else: suite] -- usual if/else_if/else statement
709 while condition: suite
710 [else: suite]
711 -- usual while statement. "else" suite is executed
712 after loop exits, unless the loop is exited with
713 "break"
714 for element in sequence: suite
715 [else: suite]
716 -- iterates over sequence, assigning each element to element.
717 Use built-in range function to iterate a number of times.
718 "else" suite executed at end unless loop exited
719 with "break"
720 break -- immediately exits "for" or "while" loop
721 continue -- immediately does next iteration of "for" or "while" loop
722 return [result] -- Exits from function (or method) and returns result (use a tuple to
723 return more than one value). If no result given, then returns None.
Raymond Hettingere685f942003-01-26 03:29:15 +0000724 yield result -- Freezes the execution frame of a generator and returns the result
725 to the iterator's .next() method. Upon the next call to next(),
726 resumes execution at the frozen point with all of the local variables
727 still intact.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000728
729 Exception Statements
730
731 assert expr[, message]
732 -- expr is evaluated. if false, raises exception AssertionError
733 with message. Inhibited if __debug__ is 0.
734 try: suite1
735 [except [exception [, value]: suite2]+
736 [else: suite3]
737 -- statements in suite1 are executed. If an exception occurs, look
738 in "except" clauses for matching <exception>. If matches or bare
739 "except" execute suite of that clause. If no exception happens
740 suite in "else" clause is executed after suite1.
741 If exception has a value, it is put in value.
742 exception can also be tuple of exceptions, e.g.
743 "except (KeyError, NameError), val: print val"
744 try: suite1
745 finally: suite2
746 -- statements in suite1 are executed. If no
747 exception, execute suite2 (even if suite1 is
748 exited with a "return", "break" or "continue"
749 statement). If exception did occur, executes
750 suite2 and then immediately reraises exception.
751 raise exception [,value [, traceback]]
752 -- raises exception with optional value
753 value. Arg traceback specifies a traceback object to
754 use when printing the exception's backtrace.
755 raise -- a raise statement without arguments re-raises
756 the last exception raised in the current function
757An exception is either a string (object) or a class instance.
758 Can create a new one simply by creating a new string:
759
760 my_exception = 'You did something wrong'
761 try:
762 if bad:
763 raise my_exception, bad
764 except my_exception, value:
765 print 'Oops', value
766
767Exception classes must be derived from the predefined class: Exception, e.g.:
768 class text_exception(Exception): pass
769 try:
770 if bad:
771 raise text_exception()
772 # This is a shorthand for the form
773 # "raise <class>, <instance>"
774 except Exception:
775 print 'Oops'
776 # This will be printed because
777 # text_exception is a subclass of Exception
778When an error message is printed for an unhandled exception which is a
779class, the class name is printed, then a colon and a space, and
780finally the instance converted to a string using the built-in function
781str().
782All built-in exception classes derives from StandardError, itself
783derived from Exception.
784
785Name Space Statements
786
787[1.51: On Mac & Windows, the case of module file names must now match the case
788as used
789 in the import statement]
790Packages (>1.5): a package is a name space which maps to a directory including
791 module(s) and the special initialization module '__init__.py'
792 (possibly empty). Packages/dirs can be nested. You address a
793 module's symbol via '[package.[package...]module.symbol's.
794import module1 [as name1] [, module2]*
795 -- imports modules. Members of module must be
796 referred to by qualifying with [package.]module name:
797 "import sys; print sys.argv:"
798 "import package1.subpackage.module; package1.subpackage.module.foo()"
799 module1 renamed as name1, if supplied.
800from module import name1 [as othername1] [, name2]*
801 -- imports names from module module in current namespace.
802 "from sys import argv; print argv"
803 "from package1 import module; module.foo()"
804 "from package1.module import foo; foo()"
805 name1 renamed as othername1, if supplied.
806from module import *
807 -- imports all names in module, except those starting with "_";
808 *to be used sparsely, beware of name clashes* :
809 "from sys import *; print argv"
810 "from package.module import *; print x'
811 NB: "from package import *" only imports the symbols defined
812 in the package's __init__.py file, not those in the
813 template modules!
814global name1 [, name2]*
815 -- names are from global scope (usually meaning from module)
816 rather than local (usually meaning only in function).
817 -- E.g. in fct without "global" statements, assuming
818 "a" is name that hasn't been used in fct or module
819 so far:
820 -Try to read from "a" -> NameError
821 -Try to write to "a" -> creates "a" local to fcn
822 -If "a" not defined in fct, but is in module, then
823 -Try to read from "a", gets value from module
824 -Try to write to "a", creates "a" local to fct
825 But note "a[0]=3" starts with search for "a",
826 will use to global "a" if no local "a".
827
828Function Definition
829
830def func_id ([param_list]): suite
831 -- Creates a function object & binds it to name func_id.
832
833 param_list ::= [id [, id]*]
834 id ::= value | id = value | *id | **id
835 [Args are passed by value.Thus only args representing a mutable object
836 can be modified (are inout parameters). Use a tuple to return more than
837 one value]
838
839Example:
840 def test (p1, p2 = 1+1, *rest, **keywords):
841 -- Parameters with "=" have default value (v is
842 evaluated when function defined).
843 If list has "*id" then id is assigned a tuple of
844 all remaining args passed to function (like C vararg)
845 If list has "**id" then id is assigned a dictionary of
846 all extra arguments passed as keywords.
847
848Class Definition
849
850class <class_id> [(<super_class1> [,<super_class2>]*)]: <suite>
851 -- Creates a class object and assigns it name <class_id>
852 <suite> may contain local "defs" of class methods and
853 assignments to class attributes.
854Example:
855 class my_class (class1, class_list[3]): ...
856 Creates a class object inheriting from both "class1" and whatever
857 class object "class_list[3]" evaluates to. Assigns new
858 class object to name "my_class".
859 - First arg to class methods is always instance object, called 'self'
860 by convention.
861 - Special method __init__() is called when instance is created.
862 - Special method __del__() called when no more reference to object.
863 - Create instance by "calling" class object, possibly with arg
864 (thus instance=apply(aClassObject, args...) creates an instance!)
865 - In current implementation, can't subclass off built-in
866 classes. But can "wrap" them, see UserDict & UserList modules,
867 and see __getattr__() below.
868Example:
869 class c (c_parent):
870 def __init__(self, name): self.name = name
871 def print_name(self): print "I'm", self.name
872 def call_parent(self): c_parent.print_name(self)
873 instance = c('tom')
874 print instance.name
875 'tom'
876 instance.print_name()
877 "I'm tom"
878 Call parent's super class by accessing parent's method
879 directly and passing "self" explicitly (see "call_parent"
880 in example above).
881 Many other special methods available for implementing
882 arithmetic operators, sequence, mapping indexing, etc.
883
884Documentation Strings
885
886Modules, classes and functions may be documented by placing a string literal by
887itself as the first statement in the suite. The documentation can be retrieved
888by getting the '__doc__' attribute from the module, class or function.
889Example:
890 class C:
891 "A description of C"
892 def __init__(self):
893 "A description of the constructor"
894 # etc.
895Then c.__doc__ == "A description of C".
896Then c.__init__.__doc__ == "A description of the constructor".
897
898Others
899
900lambda [param_list]: returnedExpr
901 -- Creates an anonymous function. returnedExpr must be
902 an expression, not a statement (e.g., not "if xx:...",
903 "print xxx", etc.) and thus can't contain newlines.
904 Used mostly for filter(), map(), reduce() functions, and GUI callbacks..
905List comprehensions
906result = [expression for item1 in sequence1 [if condition1]
907 [for item2 in sequence2 ... for itemN in sequenceN]
908 ]
909is equivalent to:
910result = []
911for item1 in sequence1:
912 for item2 in sequence2:
913 ...
914 for itemN in sequenceN:
915 if (condition1) and furthur conditions:
916 result.append(expression)
917
918
919
920Built-In Functions
921
922 Built-In Functions
923 Function Result
924__import__(name[, Imports module within the given context (see lib ref for
925globals[, locals[, more details)
926fromlist]]])
927abs(x) Return the absolute value of number x.
Raymond Hettingere685f942003-01-26 03:29:15 +0000928bool(x) Returns True when the argument x is true and False otherwise.
929buffer(obj) Creates a buffer reference to an object.
930callable(x) Returns True if x callable, else False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000931chr(i) Returns one-character string whose ASCII code isinteger i
Raymond Hettingere685f942003-01-26 03:29:15 +0000932classmethod(f) Converts a function f, into a method with the class as the
933 first argument. Useful for creating alternative constructors.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000934cmp(x,y) Returns negative, 0, positive if x <, ==, > to y
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000935compile(string, from which the code was read, or eg. '<string>'if not read
936filename, kind) from file.kind can be 'eval' if string is a single stmt, or
937 'single' which prints the output of expression statements
938 thatevaluate to something else than None, or be 'exec'.
939complex(real[, Builds a complex object (can also be done using J or j
940image]) suffix,e.g. 1+3J)
941delattr(obj, name) deletes attribute named name of object obj <=> del obj.name
942 If no args, returns the list of names in current
Raymond Hettingere685f942003-01-26 03:29:15 +0000943dict([items]) Create a new dictionary from the specified item list.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000944dir([object]) localsymbol table. With a module, class or class
945 instanceobject as arg, returns list of names in its attr.
946 dict.
947divmod(a,b) Returns tuple of (a/b, a%b)
Raymond Hettingere685f942003-01-26 03:29:15 +0000948enumerate(seq) Return a iterator giving: (0, seq[0]), (1, seq[1]), ...
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000949eval(s[, globals[, Eval string s in (optional) globals, locals contexts.s must
950locals]]) have no NUL's or newlines. s can also be acode object.
951 Example: x = 1; incr_x = eval('x + 1')
952execfile(file[, Executes a file without creating a new module, unlike
953globals[, locals]]) import.
Raymond Hettingere685f942003-01-26 03:29:15 +0000954file() Synonym for open().
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000955filter(function, Constructs a list from those elements of sequence for which
956sequence) function returns true. function takes one parameter.
957float(x) Converts a number or a string to floating point.
958getattr(object, [<default> arg added in 1.5.2]Gets attribute called name
959name[, default])) from object,e.g. getattr(x, 'f') <=> x.f). If not found,
960 raisesAttributeError or returns default if specified.
961globals() Returns a dictionary containing current global variables.
962hasattr(object, Returns true if object has attr called name.
963name)
964hash(object) Returns the hash value of the object (if it has one)
Raymond Hettingere685f942003-01-26 03:29:15 +0000965help(f) Display documentation on object f.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000966hex(x) Converts a number x to a hexadecimal string.
967id(object) Returns a unique 'identity' integer for an object.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000968int(x[, base]) base paramenter specifies base from which to convert string
969 values.
970intern(aString) Enters aString in the table of "interned strings"
971 andreturns the string. Interned strings are 'immortals'.
972isinstance(obj, returns true if obj is an instance of class. Ifissubclass
973class) (A,B) then isinstance(x,A) => isinstance(x,B)
974issubclass(class1, returns true if class1 is derived from class2
975class2)
976 Returns the length (the number of items) of an object
Raymond Hettingere685f942003-01-26 03:29:15 +0000977iter(collection) Returns an iterator over the collection.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000978len(obj) (sequence, dictionary, or instance of class implementing
979 __len__).
980list(sequence) Converts sequence into a list. If already a list,returns a
981 copy of it.
982locals() Returns a dictionary containing current local variables.
983 Converts a number or a string to a long integer. Optional
984long(x[, base]) base paramenter specifies base from which to convert string
985 values.
986 Applies function to every item of list and returns a listof
987map(function, list, the results. If additional arguments are passed,function
988...) must take that many arguments and it is givento function on
989 each call.
990max(seq) Returns the largest item of the non-empty sequence seq.
991min(seq) Returns the smallest item of a non-empty sequence seq.
992oct(x) Converts a number to an octal string.
993open(filename [, Returns a new file object. First two args are same asthose
994mode='r', [bufsize= for C's "stdio open" function. bufsize is 0for unbuffered,
995implementation 1 for line-buffered, negative forsys-default, all else, of
996dependent]]) (about) given size.
997ord(c) Returns integer ASCII value of c (a string of len 1). Works
998 with Unicode char.
Raymond Hettingere685f942003-01-26 03:29:15 +0000999object() Create a base type. Used as a superclass for new-style objects.
1000open(name Open a file.
1001 [, mode
1002 [, buffering]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001003pow(x, y [, z]) Returns x to power y [modulo z]. See also ** operator.
Raymond Hettingere685f942003-01-26 03:29:15 +00001004property() Created a property with access controlled by functions.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001005range(start [,end Returns list of ints from >= start and < end.With 1 arg,
1006[, step]]) list from 0..arg-1With 2 args, list from start..end-1With 3
1007 args, list from start up to end by step
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001008reduce(f, list [, Applies the binary function f to the items oflist so as to
1009init]) reduce the list to a single value.If init given, it is
1010 "prepended" to list.
1011 Re-parses and re-initializes an already imported module.
1012 Useful in interactive mode, if you want to reload amodule
1013reload(module) after fixing it. If module was syntacticallycorrect but had
1014 an error in initialization, mustimport it one more time
1015 before calling reload().
1016 Returns a string containing a printable and if possible
1017repr(object) evaluable representation of an object. <=> `object`
1018 (usingbackquotes). Class redefinissable (__repr__). See
1019 also str()
1020round(x, n=0) Returns the floating point value x rounded to n digitsafter
1021 the decimal point.
1022setattr(object, This is the counterpart of getattr().setattr(o, 'foobar',
1023name, value) 3) <=> o.foobar = 3Creates attribute if it doesn't exist!
1024slice([start,] stop Returns a slice object representing a range, with R/
1025[, step]) Oattributes: start, stop, step.
1026 Returns a string containing a nicely
Raymond Hettingere685f942003-01-26 03:29:15 +00001027staticmethod() Convert a function to method with no self or class
1028 argument. Useful for methods associated with a class that
1029 do not need access to an object's internal state.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001030str(object) printablerepresentation of an object. Class overridable
1031 (__str__).See also repr().
Raymond Hettingere685f942003-01-26 03:29:15 +00001032super(type) Create an unbound super object. Used to call cooperative
1033 superclass methods.
Raymond Hettingerca60cac2003-07-12 23:55:57 +00001034sum(sequence, Add the values in the sequence and return the sum.
1035 [start])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001036tuple(sequence) Creates a tuple with same elements as sequence. If already
1037 a tuple, return itself (not a copy).
1038 Returns a type object [see module types] representing
1039 thetype of obj. Example: import typesif type(x) ==
1040type(obj) types.StringType: print 'It is a string'NB: it is
1041 recommanded to use the following form:if isinstance(x,
1042 types.StringType): etc...
1043unichr(code) code.
1044unicode(string[, Creates a Unicode string from a 8-bit string, using
1045encoding[, error thegiven encoding name and error treatment ('strict',
1046]]]) 'ignore',or 'replace'}.
1047 Without arguments, returns a dictionary correspondingto the
1048 current local symbol table. With a module,class or class
1049vars([object]) instance object as argumentreturns a dictionary
1050 corresponding to the object'ssymbol table. Useful with "%"
1051 formatting operator.
1052xrange(start [, end Like range(), but doesn't actually store entire listall at
1053[, step]]) once. Good to use in "for" loops when there is abig range
1054 and little memory.
1055zip(seq1[, seq2, Returns a list of tuples where each tuple contains the nth
1056...]) element of each of the argument sequences.
1057
1058
1059
1060
1061Built-In Exceptions
1062
1063Exception>
1064 Root class for all exceptions
1065 SystemExit
1066 On 'sys.exit()'
Raymond Hettingere685f942003-01-26 03:29:15 +00001067 StopIteration
1068 Signal the end from iterator.next()
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001069 StandardError
1070 Base class for all built-in exceptions; derived from Exception
1071 root class.
1072 ArithmeticError
1073 Base class for OverflowError, ZeroDivisionError,
1074 FloatingPointError
1075 FloatingPointError
1076 When a floating point operation fails.
1077 OverflowError
1078 On excessively large arithmetic operation
1079 ZeroDivisionError
1080 On division or modulo operation with 0 as 2nd arg
1081 AssertionError
1082 When an assert statement fails.
1083 AttributeError
1084 On attribute reference or assignment failure
1085 EnvironmentError [new in 1.5.2]
1086 On error outside Python; error arg tuple is (errno, errMsg...)
1087 IOError [changed in 1.5.2]
1088 I/O-related operation failure
1089 OSError [new in 1.5.2]
1090 used by the os module's os.error exception.
1091 EOFError
1092 Immediate end-of-file hit by input() or raw_input()
1093 ImportError
1094 On failure of `import' to find module or name
1095 KeyboardInterrupt
1096 On user entry of the interrupt key (often `Control-C')
1097 LookupError
1098 base class for IndexError, KeyError
1099 IndexError
1100 On out-of-range sequence subscript
1101 KeyError
1102 On reference to a non-existent mapping (dict) key
1103 MemoryError
1104 On recoverable memory exhaustion
1105 NameError
1106 On failure to find a local or global (unqualified) name
1107 RuntimeError
1108 Obsolete catch-all; define a suitable error instead
1109 NotImplementedError [new in 1.5.2]
1110 On method not implemented
1111 SyntaxError
1112 On parser encountering a syntax error
1113 IndentationError
1114 On parser encountering an indentation syntax error
1115 TabError
1116 On parser encountering an indentation syntax error
1117 SystemError
1118 On non-fatal interpreter error - bug - report it
1119 TypeError
1120 On passing inappropriate type to built-in op or func
1121 ValueError
1122 On arg error not covered by TypeError or more precise
Raymond Hettingere685f942003-01-26 03:29:15 +00001123 Warning
1124 UserWarning
1125 DeprecationWarning
1126 PendingDeprecationWarning
1127 SyntaxWarning
1128 OverflowWarning
1129 RuntimeWarning
1130 FutureWarning
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001131
1132
1133
1134Standard methods & operators redefinition in classes
1135
1136Standard methods & operators map to special '__methods__' and thus may be
1137 redefined (mostly in in user-defined classes), e.g.:
1138 class x:
1139 def __init__(self, v): self.value = v
1140 def __add__(self, r): return self.value + r
1141 a = x(3) # sort of like calling x.__init__(a, 3)
1142 a + 4 # is equivalent to a.__add__(4)
1143
1144Special methods for any class
1145
1146(s: self, o: other)
1147 __init__(s, args) instance initialization (on construction)
1148 __del__(s) called on object demise (refcount becomes 0)
1149 __repr__(s) repr() and `...` conversions
1150 __str__(s) str() and 'print' statement
1151 __cmp__(s, o) Compares s to o and returns <0, 0, or >0.
1152 Implements >, <, == etc...
1153 __hash__(s) Compute a 32 bit hash code; hash() and dictionary ops
Raymond Hettingere685f942003-01-26 03:29:15 +00001154 __nonzero__(s) Returns False or True for truth value testing
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001155 __getattr__(s, name) called when attr lookup doesn't find <name>
1156 __setattr__(s, name, val) called when setting an attr
1157 (inside, don't use "self.name = value"
1158 use "self.__dict__[name] = val")
1159 __delattr__(s, name) called to delete attr <name>
1160 __call__(self, *args) called when an instance is called as function.
1161
1162Operators
1163
1164 See list in the operator module. Operator function names are provided with
1165 2 variants, with or without
1166 ading & trailing '__' (eg. __add__ or add).
1167
1168 Numeric operations special methods
1169 (s: self, o: other)
1170
1171 s+o = __add__(s,o) s-o = __sub__(s,o)
1172 s*o = __mul__(s,o) s/o = __div__(s,o)
1173 s%o = __mod__(s,o) divmod(s,o) = __divmod__(s,o)
1174 s**o = __pow__(s,o)
1175 s&o = __and__(s,o)
1176 s^o = __xor__(s,o) s|o = __or__(s,o)
1177 s<<o = __lshift__(s,o) s>>o = __rshift__(s,o)
1178 nonzero(s) = __nonzero__(s) (used in boolean testing)
1179 -s = __neg__(s) +s = __pos__(s)
1180 abs(s) = __abs__(s) ~s = __invert__(s) (bitwise)
1181 s+=o = __iadd__(s,o) s-=o = __isub__(s,o)
1182 s*=o = __imul__(s,o) s/=o = __idiv__(s,o)
1183 s%=o = __imod__(s,o)
1184 s**=o = __ipow__(s,o)
1185 s&=o = __iand__(s,o)
1186 s^=o = __ixor__(s,o) s|=o = __ior__(s,o)
1187 s<<=o = __ilshift__(s,o) s>>=o = __irshift__(s,o)
1188 Conversions
1189 int(s) = __int__(s) long(s) = __long__(s)
1190 float(s) = __float__(s) complex(s) = __complex__(s)
1191 oct(s) = __oct__(s) hex(s) = __hex__(s)
1192 coerce(s,o) = __coerce__(s,o)
1193 Right-hand-side equivalents for all binary operators exist;
1194 are called when class instance is on r-h-s of operator:
1195 a + 3 calls __add__(a, 3)
1196 3 + a calls __radd__(a, 3)
1197
1198 All seqs and maps, general operations plus:
1199 (s: self, i: index or key)
1200
1201 len(s) = __len__(s) length of object, >= 0. Length 0 == false
1202 s[i] = __getitem__(s,i) Element at index/key i, origin 0
1203
1204 Sequences, general methods, plus:
1205 s[i]=v = __setitem__(s,i,v)
1206 del s[i] = __delitem__(s,i)
1207 s[i:j] = __getslice__(s,i,j)
1208 s[i:j]=seq = __setslice__(s,i,j,seq)
1209 del s[i:j] = __delslice__(s,i,j) == s[i:j] = []
1210 seq * n = __repeat__(seq, n)
1211 s1 + s2 = __concat__(s1, s2)
1212 i in s = __contains__(s, i)
1213 Mappings, general methods, plus
1214 hash(s) = __hash__(s) - hash value for dictionary references
1215 s[k]=v = __setitem__(s,k,v)
1216 del s[k] = __delitem__(s,k)
1217
1218Special informative state attributes for some types:
1219
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001220 Modules:
1221 __doc__ (string/None, R/O): doc string (<=> __dict__['__doc__'])
1222 __name__(string, R/O): module name (also in __dict__['__name__'])
1223 __dict__ (dict, R/O): module's name space
1224 __file__(string/undefined, R/O): pathname of .pyc, .pyo or .pyd (undef for
1225 modules statically linked to the interpreter)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001226
1227 Classes: [in bold: writable since 1.5.2]
1228 __doc__ (string/None, R/W): doc string (<=> __dict__['__doc__'])
Raymond Hettingere685f942003-01-26 03:29:15 +00001229 __module__ is the module name in which the class was defined
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001230 __name__(string, R/W): class name (also in __dict__['__name__'])
1231 __bases__ (tuple, R/W): parent classes
1232 __dict__ (dict, R/W): attributes (class name space)
1233
1234 Instances:
1235 __class__ (class, R/W): instance's class
1236 __dict__ (dict, R/W): attributes
Raymond Hettingere685f942003-01-26 03:29:15 +00001237
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001238 User-defined functions: [bold: writable since 1.5.2]
1239 __doc__ (string/None, R/W): doc string
1240 __name__(string, R/O): function name
1241 func_doc (R/W): same as __doc__
1242 func_name (R/O): same as __name__
1243 func_defaults (tuple/None, R/W): default args values if any
1244 func_code (code, R/W): code object representing the compiled function body
1245 func_globals (dict, R/O): ref to dictionary of func global variables
Raymond Hettingere685f942003-01-26 03:29:15 +00001246 func_dict (dict, R/W): same as __dict__ contains the namespace supporting
1247 arbitrary function attributes
1248 func_closure (R/O): None or a tuple of cells that contain bindings
1249 for the function's free variables.
1250
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001251
1252 User-defined Methods:
1253 __doc__ (string/None, R/O): doc string
1254 __name__(string, R/O): method name (same as im_func.__name__)
1255 im_class (class, R/O): class defining the method (may be a base class)
1256 im_self (instance/None, R/O): target instance object (None if unbound)
1257 im_func (function, R/O): function object
Raymond Hettingere685f942003-01-26 03:29:15 +00001258
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001259 Built-in Functions & methods:
1260 __doc__ (string/None, R/O): doc string
1261 __name__ (string, R/O): function name
1262 __self__ : [methods only] target object
Raymond Hettingere685f942003-01-26 03:29:15 +00001263
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001264 Codes:
1265 co_name (string, R/O): function name
1266 co_argcount (int, R/0): number of positional args
1267 co_nlocals (int, R/O): number of local vars (including args)
1268 co_varnames (tuple, R/O): names of local vars (starting with args)
Raymond Hettingere685f942003-01-26 03:29:15 +00001269 co_cellvars (tuple, R/O)) the names of local variables referenced by
1270 nested functions
1271 co_freevars (tuple, R/O)) names of free variables
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001272 co_code (string, R/O): sequence of bytecode instructions
1273 co_consts (tuple, R/O): litterals used by the bytecode, 1st one is
1274 fct doc (or None)
1275 co_names (tuple, R/O): names used by the bytecode
1276 co_filename (string, R/O): filename from which the code was compiled
1277 co_firstlineno (int, R/O): first line number of the function
1278 co_lnotab (string, R/O): string encoding bytecode offsets to line numbers.
1279 co_stacksize (int, R/O): required stack size (including local vars)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001280 co_flags (int, R/O): flags for the interpreter
1281 bit 2 set if fct uses "*arg" syntax
1282 bit 3 set if fct uses '**keywords' syntax
1283 Frames:
1284 f_back (frame/None, R/O): previous stack frame (toward the caller)
1285 f_code (code, R/O): code object being executed in this frame
1286 f_locals (dict, R/O): local vars
1287 f_globals (dict, R/O): global vars
1288 f_builtins (dict, R/O): built-in (intrinsic) names
1289 f_restricted (int, R/O): flag indicating whether fct is executed in
1290 restricted mode
1291 f_lineno (int, R/O): current line number
1292 f_lasti (int, R/O): precise instruction (index into bytecode)
1293 f_trace (function/None, R/W): debug hook called at start of each source line
1294 f_exc_type (Type/None, R/W): Most recent exception type
1295 f_exc_value (any, R/W): Most recent exception value
1296 f_exc_traceback (traceback/None, R/W): Most recent exception traceback
1297 Tracebacks:
1298 tb_next (frame/None, R/O): next level in stack trace (toward the frame where
1299 the exception occurred)
1300 tb_frame (frame, R/O): execution frame of the current level
Fred Drakedb390c12005-10-28 14:39:47 +00001301 tb_lineno (int, R/O): line number where the exception occurred
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001302 tb_lasti (int, R/O): precise instruction (index into bytecode)
1303
1304 Slices:
1305 start (any/None, R/O): lowerbound
1306 stop (any/None, R/O): upperbound
1307 step (any/None, R/O): step value
1308
1309 Complex numbers:
1310 real (float, R/O): real part
1311 imag (float, R/O): imaginary part
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001312
1313
1314Important Modules
1315
1316 sys
1317
1318 Some sys variables
1319 Variable Content
1320argv The list of command line arguments passed to aPython
1321 script. sys.argv[0] is the script name.
1322builtin_module_names A list of strings giving the names of all moduleswritten
1323 in C that are linked into this interpreter.
1324check_interval How often to check for thread switches or signals(measured
1325 in number of virtual machine instructions)
1326exc_type, exc_value, Deprecated since release 1.5. Use exc_info() instead.
1327exc_traceback
1328exitfunc User can set to a parameterless fcn. It will getcalled
1329 before interpreter exits.
1330last_type, Set only when an exception not handled andinterpreter
1331last_value, prints an error. Used by debuggers.
1332last_traceback
1333maxint maximum positive value for integers
1334modules Dictionary of modules that have already been loaded.
1335path Search path for external modules. Can be modifiedby
1336 program. sys.path[0] == dir of script executing
1337platform The current platform, e.g. "sunos5", "win32"
1338ps1, ps2 prompts to use in interactive mode.
1339 File objects used for I/O. One can redirect byassigning a
1340stdin, stdout, new file object to them (or any object:.with a method
1341stderr write(string) for stdout/stderr,.with a method readline()
1342 for stdin)
1343version string containing version info about Python interpreter.
1344 (and also: copyright, dllhandle, exec_prefix, prefix)
1345version_info tuple containing Python version info - (major, minor,
1346 micro, level, serial).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001347
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001348 Some sys functions
1349 Function Result
1350exit(n) Exits with status n. Raises SystemExit exception.(Hence can
1351 be caught and ignored by program)
Raymond Hettingere685f942003-01-26 03:29:15 +00001352getrefcount(object Returns the reference count of the object. Generally one
1353) higher than you might expect, because of object arg temp
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001354 reference.
1355setcheckinterval( Sets the interpreter's thread switching interval (in number
Skip Montanaroeec26f92003-07-02 21:38:34 +00001356interval) of virtual code instructions, default:100).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001357settrace(func) Sets a trace function: called before each line ofcode is
1358 exited.
1359setprofile(func) Sets a profile function for performance profiling.
1360 Info on exception currently being handled; this is atuple
1361 (exc_type, exc_value, exc_traceback).Warning: assigning the
1362exc_info() traceback return value to a loca variable in a
Raymond Hettingere685f942003-01-26 03:29:15 +00001363 function handling an exception will cause a circular
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001364 reference.
1365setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII.
1366(encoding)
1367getrecursionlimit Retrieve maximum recursion depth.
1368()
1369setrecursionlimit Set maximum recursion depth. (Defaults to 1000.)
1370()
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001371
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001372
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001373
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001374 os
1375"synonym" for whatever O/S-specific module is proper for current environment.
1376this module uses posix whenever possible.
1377(see also M.A. Lemburg's utility http://www.lemburg.com/files/python/
1378platform.py)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001379
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001380 Some os variables
1381 Variable Meaning
1382name name of O/S-specific module (e.g. "posix", "mac", "nt")
1383path O/S-specific module for path manipulations.
1384 On Unix, os.path.split() <=> posixpath.split()
1385curdir string used to represent current directory ('.')
1386pardir string used to represent parent directory ('..')
1387sep string used to separate directories ('/' or '\'). Tip: use
1388 os.path.join() to build portable paths.
1389altsep Alternate sep
1390if applicable (None
1391otherwise)
1392pathsep character used to separate search path components (as in
1393 $PATH), eg. ';' for windows.
1394linesep line separator as used in binary files, ie '\n' on Unix, '\
1395 r\n' on Dos/Win, '\r'
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001396
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001397 Some os functions
1398 Function Result
1399makedirs(path[, Recursive directory creation (create required intermediary
1400mode=0777]) dirs); os.error if fails.
1401removedirs(path) Recursive directory delete (delete intermediary empty
1402 dirs); if fails.
1403renames(old, new) Recursive directory or file renaming; os.error if fails.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001404
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001405
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001406
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001407 posix
1408don't import this module directly, import os instead !
1409(see also module: shutil for file copy & remove fcts)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001410
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001411 posix Variables
1412Variable Meaning
1413environ dictionary of environment variables, e.g.posix.environ['HOME'].
1414error exception raised on POSIX-related error.
1415 Corresponding value is tuple of errno code and perror() string.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001416
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001417 Some posix functions
1418 Function Result
1419chdir(path) Changes current directory to path.
1420chmod(path, Changes the mode of path to the numeric mode
1421mode)
1422close(fd) Closes file descriptor fd opened with posix.open.
1423_exit(n) Immediate exit, with no cleanups, no SystemExit,etc. Should use
1424 this to exit a child process.
1425execv(p, args) "Become" executable p with args args
1426getcwd() Returns a string representing the current working directory
1427getpid() Returns the current process id
1428fork() Like C's fork(). Returns 0 to child, child pid to parent.[Not
1429 on Windows]
1430kill(pid, Like C's kill [Not on Windows]
1431signal)
1432listdir(path) Lists (base)names of entries in directory path, excluding '.'
1433 and '..'
1434lseek(fd, pos, Sets current position in file fd to position pos, expressedas
1435how) an offset relative to beginning of file (how=0), tocurrent
1436 position (how=1), or to end of file (how=2)
1437mkdir(path[, Creates a directory named path with numeric mode (default 0777)
1438mode])
1439open(file, Like C's open(). Returns file descriptor. Use file object
1440flags, mode) fctsrather than this low level ones.
1441pipe() Creates a pipe. Returns pair of file descriptors (r, w) [Not on
1442 Windows].
1443popen(command, Opens a pipe to or from command. Result is a file object to
1444mode='r', read to orwrite from, as indicated by mode being 'r' or 'w'.
1445bufSize=0) Use it to catch acommand output ('r' mode) or to feed it ('w'
1446 mode).
1447remove(path) See unlink.
1448rename(src, dst Renames/moves the file or directory src to dst. [error iftarget
1449) name already exists]
1450rmdir(path) Removes the empty directory path
1451read(fd, n) Reads n bytes from file descriptor fd and return as string.
1452 Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid,
1453stat(path) st_size, st_atime, st_mtime, st_ctime.[st_ino, st_uid, st_gid
1454 are dummy on Windows]
1455system(command) Executes string command in a subshell. Returns exitstatus of
1456 subshell (usually 0 means OK).
1457 Returns accumulated CPU times in sec (user, system, children's
1458times() user,children's sys, elapsed real time). [3 last not on
1459 Windows]
1460unlink(path) Unlinks ("deletes") the file (not dir!) path. same as: remove
1461utime(path, ( Sets the access & modified time of the file to the given tuple
1462aTime, mTime)) of values.
1463wait() Waits for child process completion. Returns tuple ofpid,
1464 exit_status [Not on Windows]
1465waitpid(pid, Waits for process pid to complete. Returns tuple ofpid,
1466options) exit_status [Not on Windows]
1467write(fd, str) Writes str to file fd. Returns nb of bytes written.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001468
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001469
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001470
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001471 posixpath
1472Do not import this module directly, import os instead and refer to this module
1473as os.path. (e.g. os.path.exists(p)) !
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001474
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001475 Some posixpath functions
1476 Function Result
1477abspath(p) Returns absolute path for path p, taking current working dir in
1478 account.
1479dirname/
1480basename(p directory and name parts of the path p. See also split.
1481)
1482exists(p) True if string p is an existing path (file or directory)
1483expanduser Returns string that is (a copy of) p with "~" expansion done.
1484(p)
1485expandvars Returns string that is (a copy of) p with environment vars expanded.
1486(p) [Windows: case significant; must use Unix: $var notation, not %var%]
1487getsize( return the size in bytes of filename. raise os.error.
1488filename)
1489getmtime( return last modification time of filename (integer nb of seconds
1490filename) since epoch).
1491getatime( return last access time of filename (integer nb of seconds since
1492filename) epoch).
1493isabs(p) True if string p is an absolute path.
1494isdir(p) True if string p is a directory.
1495islink(p) True if string p is a symbolic link.
1496ismount(p) True if string p is a mount point [true for all dirs on Windows].
1497join(p[,q Joins one or more path components intelligently.
1498[,...]])
1499 Splits p into (head, tail) where tail is lastpathname component and
1500split(p) <head> is everything leadingup to that. <=> (dirname(p), basename
1501 (p))
1502splitdrive Splits path p in a pair ('drive:', tail) [Windows]
1503(p)
1504splitext(p Splits into (root, ext) where last comp of root contains no periods
1505) and ext is empty or startswith a period.
1506 Calls the function visit with arguments(arg, dirname, names) for
1507 each directory recursively inthe directory tree rooted at p
1508walk(p, (including p itself if it's a dir)The argument dirname specifies the
1509visit, arg visited directory, the argumentnames lists the files in the
1510) directory. The visit function maymodify names to influence the set
1511 of directories visited belowdirname, e.g., to avoid visiting certain
1512 parts of the tree.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001513
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001514
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001515
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001516 shutil
1517high-level file operations (copying, deleting).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001518
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001519 Main shutil functions
1520 Function Result
1521copy(src, dst) Copies the contents of file src to file dst, retaining file
1522 permissions.
1523copytree(src, dst Recursively copies an entire directory tree rooted at src
1524[, symlinks]) into dst (which should not already exist). If symlinks is
1525 true, links insrc are kept as such in dst.
1526rmtree(path[, Deletes an entire directory tree, ignoring errors if
1527ignore_errors[, ignore_errors true,or calling onerror(func, path,
1528onerror]]) sys.exc_info()) if supplied with
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001529
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001530(and also: copyfile, copymode, copystat, copy2)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001531
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001532time
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001533
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001534 Variables
1535Variable Meaning
1536altzone signed offset of local DST timezone in sec west of the 0th meridian.
1537daylight nonzero if a DST timezone is specified
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001538
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001539 Functions
1540 Function Result
1541time() return a float representing UTC time in seconds since the epoch.
1542gmtime(secs), return a tuple representing time : (year aaaa, month(1-12),day
1543localtime( (1-31), hour(0-23), minute(0-59), second(0-59), weekday(0-6, 0 is
1544secs) monday), Julian day(1-366), daylight flag(-1,0 or 1))
1545asctime(
1546timeTuple),
1547strftime(
1548format, return a formated string representing time.
1549timeTuple)
1550mktime(tuple) inverse of localtime(). Return a float.
1551strptime( parse a formated string representing time, return tuple as in
1552string[, gmtime().
1553format])
1554sleep(secs) Suspend execution for <secs> seconds. <secs> can be a float.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001555
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001556and also: clock, ctime.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001557
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001558 string
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001559
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001560As of Python 2.0, much (though not all) of the functionality provided by the
1561string module have been superseded by built-in string methods - see Operations
1562on strings for details.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001563
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001564 Some string variables
1565 Variable Meaning
1566digits The string '0123456789'
1567hexdigits, octdigits legal hexadecimal & octal digits
1568letters, uppercase, lowercase, Strings containing the appropriate
1569whitespace characters
1570index_error Exception raised by index() if substr not
1571 found.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001572
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001573 Some string functions
1574 Function Result
1575expandtabs(s, returns a copy of string <s> with tabs expanded.
1576tabSize)
1577find/rfind(s, sub Return the lowest/highest index in <s> where the substring
1578[, start=0[, end= <sub> is found such that <sub> is wholly contained ins
15790]) [start:end]. Return -1 if <sub> not found.
1580ljust/rjust/center Return a copy of string <s> left/right justified/centerd in
1581(s, width) afield of given width, padded with spaces. <s> is
1582 nevertruncated.
1583lower/upper(s) Return a string that is (a copy of) <s> in lowercase/
1584 uppercase
1585split(s[, sep= Return a list containing the words of the string <s>,using
1586whitespace[, the string <sep> as a separator.
1587maxsplit=0]])
1588join(words[, sep=' Concatenate a list or tuple of words with
1589']) interveningseparators; inverse of split.
Fred Drakedb390c12005-10-28 14:39:47 +00001590replace(s, old, Returns a copy of string <s> with all occurrences of
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001591new[, maxsplit=0] substring<old> replaced by <new>. Limits to <maxsplit>
1592 firstsubstitutions if specified.
1593strip(s) Return a string that is (a copy of) <s> without leadingand
1594 trailing whitespace. see also lstrip, rstrip.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001595
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001596
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001597
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001598 re (sre)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001599
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001600Handles Unicode strings. Implemented in new module sre, re now a mere front-end
1601for compatibility.
1602Patterns are specified as strings. Tip: Use raw strings (e.g. r'\w*') to
1603litteralize backslashes.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001604
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001605
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001606 Regular expression syntax
1607 Form Description
1608. matches any character (including newline if DOTALL flag specified)
1609^ matches start of the string (of every line in MULTILINE mode)
1610$ matches end of the string (of every line in MULTILINE mode)
1611* 0 or more of preceding regular expression (as many as possible)
1612+ 1 or more of preceding regular expression (as many as possible)
Fred Drakedb390c12005-10-28 14:39:47 +00001613? 0 or 1 occurrence of preceding regular expression
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001614*?, +?, ?? Same as *, + and ? but matches as few characters as possible
1615{m,n} matches from m to n repetitions of preceding RE
1616{m,n}? idem, attempting to match as few repetitions as possible
1617[ ] defines character set: e.g. '[a-zA-Z]' to match all letters(see also
1618 \w \S)
1619[^ ] defines complemented character set: matches if char is NOT in set
1620 escapes special chars '*?+&$|()' and introduces special sequences
1621\ (see below). Due to Python string rules, write as '\\' orr'\' in the
1622 pattern string.
1623\\ matches a litteral '\'; due to Python string rules, write as '\\\\
1624 'in pattern string, or better using raw string: r'\\'.
1625| specifies alternative: 'foo|bar' matches 'foo' or 'bar'
1626(...) matches any RE inside (), and delimits a group.
1627(?:...) idem but doesn't delimit a group.
1628 matches if ... matches next, but doesn't consume any of the string
1629(?=...) e.g. 'Isaac (?=Asimov)' matches 'Isaac' only if followed by
1630 'Asimov'.
1631(?!...) matches if ... doesn't match next. Negative of (?=...)
1632(?P<name matches any RE inside (), and delimits a named group. (e.g. r'(?P
1633>...) <id>[a-zA-Z_]\w*)' defines a group named id)
1634(?P=name) matches whatever text was matched by the earlier group named name.
1635(?#...) A comment; ignored.
1636(?letter) letter is one of 'i','L', 'm', 's', 'x'. Set the corresponding flags
1637 (re.I, re.L, re.M, re.S, re.X) for the entire RE.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001638
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001639 Special sequences
1640Sequence Description
1641number matches content of the group of the same number; groups are numbered
1642 starting from 1
1643\A matches only at the start of the string
1644\b empty str at beg or end of word: '\bis\b' matches 'is', but not 'his'
1645\B empty str NOT at beginning or end of word
1646\d any decimal digit (<=> [0-9])
1647\D any non-decimal digit char (<=> [^O-9])
1648\s any whitespace char (<=> [ \t\n\r\f\v])
1649\S any non-whitespace char (<=> [^ \t\n\r\f\v])
1650\w any alphaNumeric char (depends on LOCALE flag)
1651\W any non-alphaNumeric char (depends on LOCALE flag)
1652\Z matches only at the end of the string
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001653
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001654 Variables
1655Variable Meaning
1656error Exception when pattern string isn't a valid regexp.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001657
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001658 Functions
1659 Function Result
1660 Compile a RE pattern string into a regular expression object.
1661 Flags (combinable by |):
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001662
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001663 I or IGNORECASE or (?i)
1664 case insensitive matching
1665compile( L or LOCALE or (?L)
1666pattern[, make \w, \W, \b, \B dependent on thecurrent locale
1667flags=0]) M or MULTILINE or (?m)
1668 matches every new line and not onlystart/end of the whole
1669 string
1670 S or DOTALL or (?s)
1671 '.' matches ALL chars, including newline
1672 X or VERBOSE or (?x)
1673 Ignores whitespace outside character sets
1674escape(string) return (a copy of) string with all non-alphanumerics
1675 backslashed.
1676match(pattern, if 0 or more chars at beginning of <string> match the RE pattern
1677string[, flags string,return a corresponding MatchObject instance, or None if
1678]) no match.
1679search(pattern scan thru <string> for a location matching <pattern>, return
1680, string[, acorresponding MatchObject instance, or None if no match.
1681flags])
1682split(pattern, split <string> by occurrences of <pattern>. If capturing () are
1683string[, used inpattern, then occurrences of patterns or subpatterns are
1684maxsplit=0]) also returned.
1685findall( return a list of non-overlapping matches in <pattern>, either a
1686pattern, list ofgroups or a list of tuples if the pattern has more than 1
1687string) group.
1688 return string obtained by replacing the (<count> first) lefmost
1689sub(pattern, non-overlapping occurrences of <pattern> (a string or a RE
1690repl, string[, object) in <string>by <repl>; <repl> can be a string or a fct
1691count=0]) called with a single MatchObj arg, which must return the
1692 replacement string.
1693subn(pattern,
1694repl, string[, same as sub(), but returns a tuple (newString, numberOfSubsMade)
1695count=0])
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001696
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001697Regular Expression Objects
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001698
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001699
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001700(RE objects are returned by the compile fct)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001701
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001702 re object attributes
1703Attribute Descrition
1704flags flags arg used when RE obj was compiled, or 0 if none provided
1705groupindex dictionary of {group name: group number} in pattern
1706pattern pattern string from which RE obj was compiled
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001707
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001708 re object methods
1709 Method Result
1710 If zero or more characters at the beginning of string match this
1711 regular expression, return a corresponding MatchObject instance.
1712 Return None if the string does not match the pattern; note that
1713 this is different from a zero-length match.
1714 The optional second parameter pos gives an index in the string
1715match( where the search is to start; it defaults to 0. This is not
1716string[, completely equivalent to slicing the string; the '' pattern
1717pos][, character matches at the real beginning of the string and at
1718endpos]) positions just after a newline, but not necessarily at the index
1719 where the search is to start.
1720 The optional parameter endpos limits how far the string will be
1721 searched; it will be as if the string is endpos characters long, so
1722 only the characters from pos to endpos will be searched for a
1723 match.
1724 Scan through string looking for a location where this regular
1725search( expression produces a match, and return a corresponding MatchObject
1726string[, instance. Return None if no position in the string matches the
1727pos][, pattern; note that this is different from finding a zero-length
1728endpos]) match at some point in the string.
1729 The optional pos and endpos parameters have the same meaning as for
1730 the match() method.
1731split(
1732string[, Identical to the split() function, using the compiled pattern.
1733maxsplit=
17340])
1735findall( Identical to the findall() function, using the compiled pattern.
1736string)
1737sub(repl,
1738string[, Identical to the sub() function, using the compiled pattern.
1739count=0])
1740subn(repl,
1741string[, Identical to the subn() function, using the compiled pattern.
1742count=0])
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001743
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001744Match Objects
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001745
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001746
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001747(Match objects are returned by the match & search functions)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001748
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001749 Match object attributes
1750Attribute Description
1751pos value of pos passed to search or match functions; index intostring at
1752 which RE engine started search.
1753endpos value of endpos passed to search or match functions; index intostring
1754 beyond which RE engine won't go.
1755re RE object whose match or search fct produced this MatchObj instance
1756string string passed to match() or search()
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001757
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001758 Match object functions
1759Function Result
1760 returns one or more groups of the match. If one arg, result is a
1761group([g1 string;if multiple args, result is a tuple with one item per arg. If
1762, g2, gi is 0,return value is entire matching string; if 1 <= gi <= 99,
1763...]) returnstring matching group #gi (or None if no such group); gi may
1764 also bea group name.
1765 returns a tuple of all groups of the match; groups not
1766groups() participatingto the match have a value of None. Returns a string
1767 instead of tupleif len(tuple)=1
1768start(
1769group), returns indices of start & end of substring matched by group (or
1770end(group Noneif group exists but doesn't contribute to the match)
1771)
1772span( returns the 2-tuple (start(group), end(group)); can be (None, None)if
1773group) group didn't contibute to the match.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001774
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001775
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001776
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001777 math
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001778
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001779Variables:
1780pi
1781e
1782Functions (see ordinary C man pages for info):
1783acos(x)
1784asin(x)
1785atan(x)
1786atan2(x, y)
1787ceil(x)
1788cos(x)
1789cosh(x)
Raymond Hettingere685f942003-01-26 03:29:15 +00001790degrees(x)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001791exp(x)
1792fabs(x)
1793floor(x)
1794fmod(x, y)
1795frexp(x) -- Unlike C: (float, int) = frexp(float)
1796ldexp(x, y)
Raymond Hettingere685f942003-01-26 03:29:15 +00001797log(x [,base])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001798log10(x)
1799modf(x) -- Unlike C: (float, float) = modf(float)
1800pow(x, y)
Raymond Hettingere685f942003-01-26 03:29:15 +00001801radians(x)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001802sin(x)
1803sinh(x)
1804sqrt(x)
1805tan(x)
1806tanh(x)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001807
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001808 getopt
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001809
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001810Functions:
1811getopt(list, optstr) -- Similar to C. <optstr> is option
1812 letters to look for. Put ':' after letter
1813 if option takes arg. E.g.
1814 # invocation was "python test.py -c hi -a arg1 arg2"
1815 opts, args = getopt.getopt(sys.argv[1:], 'ab:c:')
1816 # opts would be
1817 [('-c', 'hi'), ('-a', '')]
1818 # args would be
1819 ['arg1', 'arg2']
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001820
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001821
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001822List of modules and packages in base distribution
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001823
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001824(built-ins and content of python Lib directory)
1825(Python NT distribution, may be slightly different in other distributions)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001826
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001827 Standard library modules
1828 Operation Result
1829aifc Stuff to parse AIFF-C and AIFF files.
1830anydbm Generic interface to all dbm clones. (dbhash, gdbm,
1831 dbm,dumbdbm)
1832asynchat Support for 'chat' style protocols
1833asyncore Asynchronous File I/O (in select style)
1834atexit Register functions to be called at exit of Python interpreter.
1835audiodev Audio support for a few platforms.
1836base64 Conversions to/from base64 RFC-MIME transport encoding .
1837BaseHTTPServer Base class forhttp services.
1838Bastion "Bastionification" utility (control access to instance vars)
1839bdb A generic Python debugger base class.
1840binhex Macintosh binhex compression/decompression.
1841bisect List bisection algorithms.
Raymond Hettingere685f942003-01-26 03:29:15 +00001842bz2 Support for bz2 compression/decompression.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001843calendar Calendar printing functions.
1844cgi Wraps the WWW Forms Common Gateway Interface (CGI).
Raymond Hettingere685f942003-01-26 03:29:15 +00001845cgitb Utility for handling CGI tracebacks.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001846CGIHTTPServer CGI http services.
1847cmd A generic class to build line-oriented command interpreters.
Raymond Hettingere685f942003-01-26 03:29:15 +00001848datetime Basic date and time types.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001849code Utilities needed to emulate Python's interactive interpreter
1850codecs Lookup existing Unicode encodings and register new ones.
1851colorsys Conversion functions between RGB and other color systems.
1852commands Tools for executing UNIX commands .
1853compileall Force "compilation" of all .py files in a directory.
1854ConfigParser Configuration file parser (much like windows .ini files)
1855copy Generic shallow and deep copying operations.
1856copy_reg Helper to provide extensibility for pickle/cPickle.
Raymond Hettingerca60cac2003-07-12 23:55:57 +00001857csv Read and write files with comma separated values.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001858dbhash (g)dbm-compatible interface to bsdhash.hashopen.
1859dircache Sorted list of files in a dir, using a cache.
1860[DEL:dircmp:DEL] [DEL:Defines a class to build directory diff tools on.:DEL]
Raymond Hettingere685f942003-01-26 03:29:15 +00001861difflib Tool for creating delta between sequences.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001862dis Bytecode disassembler.
1863distutils Package installation system.
Raymond Hettingere685f942003-01-26 03:29:15 +00001864doctest Tool for running and verifying tests inside doc strings.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001865dospath Common operations on DOS pathnames.
1866dumbdbm A dumb and slow but simple dbm clone.
1867[DEL:dump:DEL] [DEL:Print python code that reconstructs a variable.:DEL]
Raymond Hettingere685f942003-01-26 03:29:15 +00001868email Comprehensive support for internet email.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001869exceptions Class based built-in exception hierarchy.
1870filecmp File comparison.
1871fileinput Helper class to quickly write a loop over all standard input
1872 files.
1873[DEL:find:DEL] [DEL:Find files directory hierarchy matching a pattern.:DEL]
1874fnmatch Filename matching with shell patterns.
1875formatter A test formatter.
1876fpformat General floating point formatting functions.
1877ftplib An FTP client class. Based on RFC 959.
1878gc Perform garbacge collection, obtain GC debug stats, and tune
1879 GC parameters.
1880getopt Standard command line processing. See also ftp://
1881 www.pauahtun.org/pub/getargspy.zip
1882getpass Utilities to get a password and/or the current user name.
1883glob filename globbing.
1884gopherlib Gopher protocol client interface.
1885[DEL:grep:DEL] [DEL:'grep' utilities.:DEL]
1886gzip Read & write gzipped files.
Raymond Hettingere685f942003-01-26 03:29:15 +00001887heapq Priority queue implemented using lists organized as heaps.
1888HMAC Keyed-Hashing for Message Authentication -- RFC 2104.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001889htmlentitydefs Proposed entity definitions for HTML.
1890htmllib HTML parsing utilities.
Raymond Hettingere685f942003-01-26 03:29:15 +00001891HTMLParser A parser for HTML and XHTML.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001892httplib HTTP client class.
1893ihooks Hooks into the "import" mechanism.
1894imaplib IMAP4 client.Based on RFC 2060.
1895imghdr Recognizing image files based on their first few bytes.
1896imputil Privides a way of writing customised import hooks.
Raymond Hettingere685f942003-01-26 03:29:15 +00001897inspect Tool for probing live Python objects.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001898keyword List of Python keywords.
1899knee A Python re-implementation of hierarchical module import.
1900linecache Cache lines from files.
1901linuxaudiodev Lunix /dev/audio support.
1902locale Support for number formatting using the current locale
1903 settings.
Raymond Hettingere685f942003-01-26 03:29:15 +00001904logging Python logging facility.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001905macpath Pathname (or related) operations for the Macintosh.
1906macurl2path Mac specific module for conversion between pathnames and URLs.
1907mailbox A class to handle a unix-style or mmdf-style mailbox.
1908mailcap Mailcap file handling (RFC 1524).
1909mhlib MH (mailbox) interface.
1910mimetools Various tools used by MIME-reading or MIME-writing programs.
1911mimetypes Guess the MIME type of a file.
1912MimeWriter Generic MIME writer.
1913mimify Mimification and unmimification of mail messages.
1914mmap Interface to memory-mapped files - they behave like mutable
1915 strings./font>
1916multifile Class to make multi-file messages easier to handle.
1917mutex Mutual exclusion -- for use with module sched.
1918netrc
1919nntplib An NNTP client class. Based on RFC 977.
1920ntpath Common operations on DOS pathnames.
1921nturl2path Mac specific module for conversion between pathnames and URLs.
Raymond Hettingere685f942003-01-26 03:29:15 +00001922optparse A comprehensive tool for processing command line options.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001923os Either mac, dos or posix depending system.
1924[DEL:packmail: [DEL:Create a self-unpacking shell archive.:DEL]
1925DEL]
1926pdb A Python debugger.
1927pickle Pickling (save and restore) of Python objects (a faster
1928 Cimplementation exists in built-in module: cPickle).
1929pipes Conversion pipeline templates.
Raymond Hettingere685f942003-01-26 03:29:15 +00001930pkgunil Utilities for working with Python packages.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001931popen2 variations on pipe open.
1932poplib A POP3 client class. Based on the J. Myers POP3 draft.
1933posixfile Extended (posix) file operations.
1934posixpath Common operations on POSIX pathnames.
1935pprint Support to pretty-print lists, tuples, & dictionaries
1936 recursively.
1937profile Class for profiling python code.
1938pstats Class for printing reports on profiled python code.
Raymond Hettingere685f942003-01-26 03:29:15 +00001939pydoc Utility for generating documentation from source files.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001940pty Pseudo terminal utilities.
1941pyexpat Interface to the Expay XML parser.
1942py_compile Routine to "compile" a .py file to a .pyc file.
1943pyclbr Parse a Python file and retrieve classes and methods.
1944Queue A multi-producer, multi-consumer queue.
1945quopri Conversions to/from quoted-printable transport encoding.
1946rand Don't use unless you want compatibility with C's rand().
Raymond Hettinger5a772d32003-01-25 22:35:42 +00001947random Random variable generators
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001948re Regular Expressions.
1949reconvert Convert old ("regex") regular expressions to new syntax
1950 ("re").
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001951repr Redo repr() but with limits on most sizes.
1952rexec Restricted execution facilities ("safe" exec, eval, etc).
1953rfc822 RFC-822 message manipulation class.
1954rlcompleter Word completion for GNU readline 2.0.
Raymond Hettinger2d95f1a2004-03-13 20:27:23 +00001955robotparser Parse robots.txt files, useful for web spiders.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001956sched A generally useful event scheduler class.
Raymond Hettingere685f942003-01-26 03:29:15 +00001957sets Module for a set datatype.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001958sgmllib A parser for SGML.
1959shelve Manage shelves of pickled objects.
1960shlex Lexical analyzer class for simple shell-like syntaxes.
1961shutil Utility functions usable in a shell-like program.
1962SimpleHTTPServer Simple extension to base http class
1963site Append module search paths for third-party packages to
1964 sys.path.
1965smtplib SMTP Client class (RFC 821)
1966sndhdr Several routines that help recognizing sound.
1967SocketServer Generic socket server classes.
1968stat Constants and functions for interpreting stat/lstat struct.
1969statcache Maintain a cache of file stats.
1970statvfs Constants for interpreting statvfs struct as returned by
1971 os.statvfs()and os.fstatvfs() (if they exist).
1972string A collection of string operations.
1973StringIO File-like objects that read/write a string buffer (a fasterC
1974 implementation exists in built-in module: cStringIO).
1975sunau Stuff to parse Sun and NeXT audio files.
1976sunaudio Interpret sun audio headers.
1977symbol Non-terminal symbols of Python grammar (from "graminit.h").
1978tabnanny,/font> Check Python source for ambiguous indentation.
Raymond Hettingere685f942003-01-26 03:29:15 +00001979tarfile Facility for reading and writing to the *nix tarfile format.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001980telnetlib TELNET client class. Based on RFC 854.
1981tempfile Temporary file name allocation.
Raymond Hettingere685f942003-01-26 03:29:15 +00001982textwrap Object for wrapping and filling text.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001983threading Proposed new higher-level threading interfaces
1984threading_api (doc of the threading module)
1985toaiff Convert "arbitrary" sound files to AIFF files .
1986token Tokens (from "token.h").
1987tokenize Compiles a regular expression that recognizes Python tokens.
1988traceback Format and print Python stack traces.
1989tty Terminal utilities.
1990turtle LogoMation-like turtle graphics
1991types Define names for all type symbols in the std interpreter.
1992tzparse Parse a timezone specification.
1993unicodedata Interface to unicode properties.
1994urllib Open an arbitrary URL.
1995urlparse Parse URLs according to latest draft of standard.
1996user Hook to allow user-specified customization code to run.
1997UserDict A wrapper to allow subclassing of built-in dict class.
1998UserList A wrapper to allow subclassing of built-in list class.
1999UserString A wrapper to allow subclassing of built-in string class.
2000[DEL:util:DEL] [DEL:some useful functions that don't fit elsewhere !!:DEL]
2001uu UUencode/UUdecode.
Raymond Hettingere685f942003-01-26 03:29:15 +00002002unittest Utilities for implementing unit testing.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002003wave Stuff to parse WAVE files.
Raymond Hettingere685f942003-01-26 03:29:15 +00002004weakref Tools for creating and managing weakly referenced objects.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002005webbrowser Platform independent URL launcher.
2006[DEL:whatsound: [DEL:Several routines that help recognizing sound files.:DEL]
2007DEL]
2008whichdb Guess which db package to use to open a db file.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002009xdrlib Implements (a subset of) Sun XDR (eXternal Data
2010 Representation)
2011xmllib A parser for XML, using the derived class as static DTD.
2012xml.dom Classes for processing XML using the Document Object Model.
2013xml.sax Classes for processing XML using the SAX API.
Raymond Hettingere685f942003-01-26 03:29:15 +00002014xmlrpclib Support for remote procedure calls using XML.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002015zipfile Read & write PK zipped files.
2016[DEL:zmod:DEL] [DEL:Demonstration of abstruse mathematical concepts.:DEL]
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002017
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002018
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002019
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002020* Built-ins *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002021
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002022 sys Interpreter state vars and functions
2023 __built-in__ Access to all built-in python identifiers
2024 __main__ Scope of the interpreters main program, script or stdin
2025 array Obj efficiently representing arrays of basic values
2026 math Math functions of C standard
Raymond Hettingere685f942003-01-26 03:29:15 +00002027 time Time-related functions (also the newer datetime module)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002028 regex Regular expression matching operations
2029 marshal Read and write some python values in binary format
2030 struct Convert between python values and C structs
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002031
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002032* Standard *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002033
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002034 getopt Parse cmd line args in sys.argv. A la UNIX 'getopt'.
2035 os A more portable interface to OS dependent functionality
2036 re Functions useful for working with regular expressions
2037 string Useful string and characters functions and exceptions
Raymond Hettingere685f942003-01-26 03:29:15 +00002038 random Mersenne Twister pseudo-random number generator
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002039 thread Low-level primitives for working with process threads
2040 threading idem, new recommanded interface.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002041
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002042* Unix/Posix *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002043
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002044 dbm Interface to Unix ndbm database library
2045 grp Interface to Unix group database
2046 posix OS functionality standardized by C and POSIX standards
2047 posixpath POSIX pathname functions
2048 pwd Access to the Unix password database
2049 select Access to Unix select multiplex file synchronization
2050 socket Access to BSD socket interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002051
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002052* Tk User-interface Toolkit *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002053
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002054 tkinter Main interface to Tk
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002055
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002056* Multimedia *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002057
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002058 audioop Useful operations on sound fragments
2059 imageop Useful operations on images
2060 jpeg Access to jpeg image compressor and decompressor
2061 rgbimg Access SGI imglib image files
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002062
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002063* Cryptographic Extensions *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002064
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002065 md5 Interface to RSA's MD5 message digest algorithm
Andrew M. Kuchling5a9618e2004-08-31 13:43:19 +00002066 sha Interface to the SHA message digest algorithm
Raymond Hettingere685f942003-01-26 03:29:15 +00002067 HMAC Keyed-Hashing for Message Authentication -- RFC 2104.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002068
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002069* Stdwin * Standard Window System
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002070
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002071 stdwin Standard Window System interface
2072 stdwinevents Stdwin event, command, and selection constants
2073 rect Rectangle manipulation operations
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002074
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002075* SGI IRIX * (4 & 5)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002076
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002077 al SGI audio facilities
2078 AL al constants
2079 fl Interface to FORMS library
2080 FL fl constants
2081 flp Functions for form designer
2082 fm Access to font manager library
2083 gl Access to graphics library
2084 GL Constants for gl
2085 DEVICE More constants for gl
2086 imgfile Imglib image file interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002087
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002088* Suns *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002089
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002090 sunaudiodev Access to sun audio interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002091
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002092
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002093Workspace exploration and idiom hints
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002094
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002095 dir(<module>) list functions, variables in <module>
2096 dir() get object keys, defaults to local name space
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002097 if __name__ == '__main__': main() invoke main if running as script
2098 map(None, lst1, lst2, ...) merge lists
2099 b = a[:] create copy of seq structure
2100 _ in interactive mode, is last value printed
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002101
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002102
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002103
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002104
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002105
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002106
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002107
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002108Python Mode for Emacs
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002109
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002110(Not revised, possibly not up to date)
2111Type C-c ? when in python-mode for extensive help.
2112INDENTATION
2113Primarily for entering new code:
2114 TAB indent line appropriately
2115 LFD insert newline, then indent
2116 DEL reduce indentation, or delete single character
2117Primarily for reindenting existing code:
2118 C-c : guess py-indent-offset from file content; change locally
2119 C-u C-c : ditto, but change globally
2120 C-c TAB reindent region to match its context
2121 C-c < shift region left by py-indent-offset
2122 C-c > shift region right by py-indent-offset
2123MARKING & MANIPULATING REGIONS OF CODE
2124C-c C-b mark block of lines
2125M-C-h mark smallest enclosing def
2126C-u M-C-h mark smallest enclosing class
2127C-c # comment out region of code
2128C-u C-c # uncomment region of code
2129MOVING POINT
2130C-c C-p move to statement preceding point
2131C-c C-n move to statement following point
2132C-c C-u move up to start of current block
2133M-C-a move to start of def
2134C-u M-C-a move to start of class
2135M-C-e move to end of def
2136C-u M-C-e move to end of class
2137EXECUTING PYTHON CODE
2138C-c C-c sends the entire buffer to the Python interpreter
2139C-c | sends the current region
2140C-c ! starts a Python interpreter window; this will be used by
2141 subsequent C-c C-c or C-c | commands
Raymond Hettingere685f942003-01-26 03:29:15 +00002142C-c C-w runs PyChecker
2143
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002144VARIABLES
2145py-indent-offset indentation increment
2146py-block-comment-prefix comment string used by py-comment-region
2147py-python-command shell command to invoke Python interpreter
2148py-scroll-process-buffer t means always scroll Python process buffer
2149py-temp-directory directory used for temp files (if needed)
2150py-beep-if-tab-change ring the bell if tab-width is changed
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002151
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002152
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002153The Python Debugger
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002154
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002155(Not revised, possibly not up to date, see 1.5.2 Library Ref section 9.1; in 1.5.2, you may also use debugger integrated in IDLE)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002156
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002157Accessing
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002158
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002159import pdb (it's a module written in Python)
2160 -- defines functions :
2161 run(statement[,globals[, locals]])
2162 -- execute statement string under debugger control, with optional
2163 global & local environment.
2164 runeval(expression[,globals[, locals]])
2165 -- same as run, but evaluate expression and return value.
2166 runcall(function[, argument, ...])
2167 -- run function object with given arg(s)
2168 pm() -- run postmortem on last exception (like debugging a core file)
2169 post_mortem(t)
2170 -- run postmortem on traceback object <t>
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002171
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002172 -- defines class Pdb :
2173 use Pdb to create reusable debugger objects. Object
2174 preserves state (i.e. break points) between calls.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002175
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002176 runs until a breakpoint hit, exception, or end of program
2177 If exception, variable '__exception__' holds (exception,value).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002178
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002179Commands
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002180
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002181h, help
2182 brief reminder of commands
2183b, break [<arg>]
2184 if <arg> numeric, break at line <arg> in current file
2185 if <arg> is function object, break on entry to fcn <arg>
2186 if no arg, list breakpoints
2187cl, clear [<arg>]
2188 if <arg> numeric, clear breakpoint at <arg> in current file
2189 if no arg, clear all breakpoints after confirmation
2190w, where
2191 print current call stack
2192u, up
2193 move up one stack frame (to top-level caller)
2194d, down
2195 move down one stack frame
2196s, step
2197 advance one line in the program, stepping into calls
2198n, next
2199 advance one line, stepping over calls
2200r, return
2201 continue execution until current function returns
2202 (return value is saved in variable "__return__", which
2203 can be printed or manipulated from debugger)
2204c, continue
2205 continue until next breakpoint
Raymond Hettingere685f942003-01-26 03:29:15 +00002206j, jump lineno
2207 Set the next line that will be executed
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002208a, args
2209 print args to current function
2210rv, retval
2211 prints return value from last function that returned
2212p, print <arg>
2213 prints value of <arg> in current stack frame
2214l, list [<first> [, <last>]]
2215 List source code for the current file.
2216 Without arguments, list 11 lines around the current line
2217 or continue the previous listing.
2218 With one argument, list 11 lines starting at that line.
2219 With two arguments, list the given range;
2220 if the second argument is less than the first, it is a count.
2221whatis <arg>
2222 prints type of <arg>
2223!
2224 executes rest of line as a Python statement in the current stack frame
2225q quit
2226 immediately stop execution and leave debugger
2227<return>
2228 executes last command again
2229Any input debugger doesn't recognize as a command is assumed to be a
2230Python statement to execute in the current stack frame, the same way
2231the exclamation mark ("!") command does.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002232
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002233Example
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002234
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002235(1394) python
2236Python 1.0.3 (Sep 26 1994)
2237Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
2238>>> import rm
2239>>> rm.run()
2240Traceback (innermost last):
2241 File "<stdin>", line 1
2242 File "./rm.py", line 7
2243 x = div(3)
2244 File "./rm.py", line 2
2245 return a / r
2246ZeroDivisionError: integer division or modulo
2247>>> import pdb
2248>>> pdb.pm()
2249> ./rm.py(2)div: return a / r
2250(Pdb) list
2251 1 def div(a):
2252 2 -> return a / r
2253 3
2254 4 def run():
2255 5 global r
2256 6 r = 0
2257 7 x = div(3)
2258 8 print x
2259[EOF]
2260(Pdb) print r
22610
2262(Pdb) q
2263>>> pdb.runcall(rm.run)
2264etc.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002265
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002266Quirks
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002267
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002268Breakpoints are stored as filename, line number tuples. If a module is reloaded
2269after editing, any remembered breakpoints are likely to be wrong.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002270
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002271Always single-steps through top-most stack frame. That is, "c" acts like "n".
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002272
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002273