blob: d8784246fa19b6a59059c335c8dcbf1afc6fdce8 [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
Neal Norwitz8b2bfbc2007-05-23 06:35:32 +000044-m mod run library module as a script (terminates option list
Raymond Hettinger72348842003-01-25 21:22:52 +000045-O optimize generated bytecode (a tad; also PYTHONOPTIMIZE=x)
46-OO remove doc-strings in addition to the -O optimizations
47-Q arg division options: -Qold (default), -Qwarn, -Qwarnall, -Qnew
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000048-S Don't perform 'import site' on initialization
49-t Issue warnings about inconsistent tab usage (-tt: issue errors)
50-u Unbuffered binary stdout and stderr (also PYTHONUNBUFFERED=x).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000051-v Verbose (trace import statements) (also PYTHONVERBOSE=x)
Raymond Hettinger72348842003-01-25 21:22:52 +000052-W arg : warning control (arg is action:message:category:module:lineno)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000053-x Skip first line of source, allowing use of non-unix Forms of #!cmd
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000054-? Help!
Neal Norwitz8b2bfbc2007-05-23 06:35:32 +000055-3 warn about Python 3.x incompatibilities
Andrew M. Kuchling13423f32001-08-06 17:43:49 +000056-c Specify the command to execute (see next section). This terminates the
57command option list (following options are passed as arguments to the command).
58 the name of a python file (.py) to execute read from stdin.
59script Anything afterward is passed as options to python script or command,
60 not interpreted as an option to interpreter itself.
61args passed to script or command (in sys.argv[1:])
62 If no script or command, Python enters interactive mode.
63
64 * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin
65 (Windows).
66
67
68
69Environment variables
70
71 Environment variables
72 Variable Effect
73PYTHONHOME Alternate prefix directory (or prefix;exec_prefix). The
74 default module search path uses prefix/lib
75 Augments the default search path for module files. The format
76 is the same as the shell's $PATH: one or more directory
77 pathnames separated by ':' or ';' without spaces around
78 (semi-)colons!
79PYTHONPATH On Windows first search for Registry key HKEY_LOCAL_MACHINE\
80 Software\Python\PythonCore\x.y\PythonPath (default value). You
81 may also define a key named after your application with a
82 default string value giving the root directory path of your
83 app.
84 If this is the name of a readable file, the Python commands in
85PYTHONSTARTUP that file are executed before the first prompt is displayed in
86 interactive mode (no default).
87PYTHONDEBUG If non-empty, same as -d option
88PYTHONINSPECT If non-empty, same as -i option
89PYTHONSUPPRESS If non-empty, same as -s option
90PYTHONUNBUFFERED If non-empty, same as -u option
91PYTHONVERBOSE If non-empty, same as -v option
92PYTHONCASEOK If non-empty, ignore case in file/module names (imports)
93
94
95
96
97Notable lexical entities
98
99Keywords
100
101 and del for is raise
102 assert elif from lambda return
103 break else global not try
104 class except if or while
Raymond Hettinger72348842003-01-25 21:22:52 +0000105 continue exec import pass yield
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000106 def finally in print
107
108 * (list of keywords in std module: keyword)
109 * Illegitimate Tokens (only valid in strings): @ $ ?
110 * A statement must all be on a single line. To break a statement over
111 multiple lines use "\", as with the C preprocessor.
112 Exception: can always break when inside any (), [], or {} pair, or in
113 triple-quoted strings.
114 * More than one statement can appear on a line if they are separated with
115 semicolons (";").
116 * Comments start with "#" and continue to end of line.
117
118Identifiers
119
120 (letter | "_") (letter | digit | "_")*
121
122 * Python identifiers keywords, attributes, etc. are case-sensitive.
123 * Special forms: _ident (not imported by 'from module import *'); __ident__
124 (system defined name);
125 __ident (class-private name mangling)
126
127Strings
128
129 "a string enclosed by double quotes"
130 'another string delimited by single quotes and with a " inside'
131 '''a string containing embedded newlines and quote (') marks, can be
132 delimited with triple quotes.'''
133 """ may also use 3- double quotes as delimiters """
134 u'a unicode string' U"Another unicode string"
135 r'a raw string where \ are kept (literalized): handy for regular
136 expressions and windows paths!'
137 R"another raw string" -- raw strings cannot end with a \
138 ur'a unicode raw string' UR"another raw unicode"
139
140 Use \ at end of line to continue a string on next line.
141 adjacent strings are concatened, e.g. 'Monty' ' Python' is the same as
142 'Monty Python'.
143 u'hello' + ' world' --> u'hello world' (coerced to unicode)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000144
145 String Literal Escapes
146
147 \newline Ignored (escape newline)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000148 \\ Backslash (\) \e Escape (ESC) \v Vertical Tab (VT)
149 \' Single quote (') \f Formfeed (FF) \OOO char with octal value OOO
150 \" Double quote (") \n Linefeed (LF)
151 \a Bell (BEL) \r Carriage Return (CR) \xHH char with hex value HH
152 \b Backspace (BS) \t Horizontal Tab (TAB)
153 \uHHHH unicode char with hex value HHHH, can only be used in unicode string
154 \UHHHHHHHH unicode char with hex value HHHHHHHH, can only be used in unicode string
155 \AnyOtherChar is left as-is
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000156
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000157 * NUL byte (\000) is NOT an end-of-string marker; NULs may be embedded in
158 strings.
159 * Strings (and tuples) are immutable: they cannot be modified.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000160
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000161Numbers
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000162
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000163 Decimal integer: 1234, 1234567890546378940L (or l)
Raymond Hettinger72348842003-01-25 21:22:52 +0000164 Octal integer: 0177, 0177777777777777777 (begin with a 0)
165 Hex integer: 0xFF, 0XFFFFffffFFFFFFFFFF (begin with 0x or 0X)
166 Long integer (unlimited precision): 1234567890123456
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000167 Float (double precision): 3.14e-10, .001, 10., 1E3
168 Complex: 1J, 2+3J, 4+5j (ends with J or j, + separates (float) real and
169 imaginary parts)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000170
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000171Sequences
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000172
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000173 * String of length 0, 1, 2 (see above)
174 '', '1', "12", 'hello\n'
175 * Tuple of length 0, 1, 2, etc:
176 () (1,) (1,2) # parentheses are optional if len > 0
177 * List of length 0, 1, 2, etc:
178 [] [1] [1,2]
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000179
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000180Indexing is 0-based. Negative indices (usually) mean count backwards from end
181of sequence.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000182
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000183Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to
184'0'; End defaults to 'sequence-length'.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000185
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000186a = (0,1,2,3,4,5,6,7)
187 a[3] ==> 3
188 a[-1] ==> 7
189 a[2:4] ==> (2, 3)
190 a[1:] ==> (1, 2, 3, 4, 5, 6, 7)
191 a[:3] ==> (0, 1, 2)
192 a[:] ==> (0,1,2,3,4,5,6,7) # makes a copy of the sequence.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000193
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000194Dictionaries (Mappings)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000195
Raymond Hettinger72348842003-01-25 21:22:52 +0000196 {} # Zero length empty dictionary
197 {1 : 'first'} # Dictionary with one (key, value) pair
198 {1 : 'first', 'next': 'second'}
199 dict([('one',1),('two',2)]) # Construct a dict from an item list
200 dict('one'=1, 'two'=2) # Construct a dict using keyword args
201 dict.fromkeys(['one', 'keys']) # Construct a dict from a sequence
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000202
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000203Operators and their evaluation order
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000204
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000205 Operators and their evaluation order
206Highest Operator Comment
207 (...) [...] {...} `...` Tuple, list & dict. creation; string
208 conv.
209 s[i] s[i:j] s.attr f(...) indexing & slicing; attributes, fct
210 calls
211 +x, -x, ~x Unary operators
212 x**y Power
Raymond Hettingere685f942003-01-26 03:29:15 +0000213 x*y x/y x%y x//y mult, division, modulo, floor division
Georg Brandlf33d01d2005-08-22 19:35:18 +0000214 x+y x-y addition, subtraction
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000215 x<<y x>>y Bit shifting
216 x&y Bitwise and
217 x^y Bitwise exclusive or
218 x|y Bitwise or
219 x<y x<=y x>y x>=y x==y x!=y Comparison,
220 x<>y identity,
221 x is y x is not y membership
222 x in s x not in s
223 not x boolean negation
224 x and y boolean and
225 x or y boolean or
226Lowest lambda args: expr anonymous function
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000227
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000228Alternate names are defined in module operator (e.g. __add__ and add for +)
Raymond Hettinger72348842003-01-25 21:22:52 +0000229Most operators are overridable.
230
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000231Many binary operators also support augmented assignment:
Raymond Hettinger72348842003-01-25 21:22:52 +0000232 x += 1 # Same as x = x + 1
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000233
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000234
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000235Basic Types and Their Operations
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000236
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000237Comparisons (defined between *any* types)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000238
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000239 Comparisons
240Comparison Meaning Notes
241< strictly less than (1)
242<= less than or equal to
243> strictly greater than
244>= greater than or equal to
245== equal to
246!= or <> not equal to
247is object identity (2)
248is not negated object identity (2)
249
250Notes :
251 Comparison behavior can be overridden for a given class by defining special
252method __cmp__.
Andrew M. Kuchling55be9ea2004-09-10 12:59:54 +0000253 The above comparisons return True or False which are of type bool
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000254(a subclass of int) and behave exactly as 1 or 0 except for their type and
Raymond Hettinger72348842003-01-25 21:22:52 +0000255that they print as True or False instead of 1 or 0.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000256 (1) X < Y < Z < W has expected meaning, unlike C
257 (2) Compare object identities (i.e. id(object)), not object values.
258
259Boolean values and operators
260
261 Boolean values and operators
262 Value or Operator Returns Notes
263None, numeric zeros, empty sequences and False
264mappings
265all other values True
266not x True if x is False, else
267 True
268x or y if x is False then y, else (1)
269 x
270x and y if x is False then x, else (1)
271 y
272
273Notes :
274 Truth testing behavior can be overridden for a given class by defining
275special method __nonzero__.
276 (1) Evaluate second arg only if necessary to determine outcome.
277
278None
279
280 None is used as default return value on functions. Built-in single object
281 with type NoneType.
282 Input that evaluates to None does not print when running Python
283 interactively.
284
285Numeric types
286
287Floats, integers and long integers.
288
289 Floats are implemented with C doubles.
290 Integers are implemented with C longs.
291 Long integers have unlimited size (only limit is system resources)
292
293Operators on all numeric types
294
295 Operators on all numeric types
296 Operation Result
297abs(x) the absolute value of x
298int(x) x converted to integer
299long(x) x converted to long integer
300float(x) x converted to floating point
301-x x negated
302+x x unchanged
303x + y the sum of x and y
304x - y difference of x and y
305x * y product of x and y
306x / y quotient of x and y
307x % y remainder of x / y
308divmod(x, y) the tuple (x/y, x%y)
309x ** y x to the power y (the same as pow(x, y))
310
311Bit operators on integers and long integers
312
313 Bit operators
314Operation >Result
315~x the bits of x inverted
316x ^ y bitwise exclusive or of x and y
317x & y bitwise and of x and y
318x | y bitwise or of x and y
319x << n x shifted left by n bits
320x >> n x shifted right by n bits
321
322Complex Numbers
323
324 * represented as a pair of machine-level double precision floating point
325 numbers.
326 * The real and imaginary value of a complex number z can be retrieved through
327 the attributes z.real and z.imag.
328
329Numeric exceptions
330
331TypeError
332 raised on application of arithmetic operation to non-number
333OverflowError
334 numeric bounds exceeded
335ZeroDivisionError
336 raised when zero second argument of div or modulo op
Raymond Hettingere685f942003-01-26 03:29:15 +0000337FloatingPointError
338 raised when a floating point operation fails
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000339
340Operations on all sequence types (lists, tuples, strings)
341
342 Operations on all sequence types
343Operation Result Notes
Raymond Hettingere685f942003-01-26 03:29:15 +0000344x in s True if an item of s is equal to x, else False
345x not in s False if an item of s is equal to x, else True
Raymond Hettinger72348842003-01-25 21:22:52 +0000346for x in s: loops over the sequence
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000347s + t the concatenation of s and t
348s * n, n*s n copies of s concatenated
349s[i] i'th item of s, origin 0 (1)
350s[i:j] slice of s from i (included) to j (excluded) (1), (2)
351len(s) length of s
352min(s) smallest item of s
353max(s) largest item of (s)
Raymond Hettinger72348842003-01-25 21:22:52 +0000354iter(s) returns an iterator over s. iterators define __iter__ and next()
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000355
356Notes :
357 (1) if i or j is negative, the index is relative to the end of the string,
358ie len(s)+ i or len(s)+j is
359 substituted. But note that -0 is still 0.
360 (2) The slice of s from i to j is defined as the sequence of items with
361index k such that i <= k < j.
362 If i or j is greater than len(s), use len(s). If i is omitted, use
363len(s). If i is greater than or
364 equal to j, the slice is empty.
365
366Operations on mutable (=modifiable) sequences (lists)
367
368 Operations on mutable sequences
369 Operation Result Notes
370s[i] =x item i of s is replaced by x
371s[i:j] = t slice of s from i to j is replaced by t
372del s[i:j] same as s[i:j] = []
373s.append(x) same as s[len(s) : len(s)] = [x]
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000374s.count(x) return number of i's for which s[i] == x
Raymond Hettingere685f942003-01-26 03:29:15 +0000375s.extend(x) same as s[len(s):len(s)]= x
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000376s.index(x) return smallest i such that s[i] == x (1)
377s.insert(i, x) same as s[i:i] = [x] if i >= 0
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000378s.pop([i]) same as x = s[i]; del s[i]; return x (4)
Raymond Hettinger72348842003-01-25 21:22:52 +0000379s.remove(x) same as del s[s.index(x)] (1)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000380s.reverse() reverse the items of s in place (3)
381s.sort([cmpFct]) sort the items of s in place (2), (3)
382
383Notes :
384 (1) raise a ValueError exception when x is not found in s (i.e. out of
385range).
386 (2) The sort() method takes an optional argument specifying a comparison
387fct of 2 arguments (list items) which should
388 return -1, 0, or 1 depending on whether the 1st argument is
389considered smaller than, equal to, or larger than the 2nd
390 argument. Note that this slows the sorting process down considerably.
391 (3) The sort() and reverse() methods modify the list in place for economy
392of space when sorting or reversing a large list.
393 They don't return the sorted or reversed list to remind you of this
394side effect.
Raymond Hettinger72348842003-01-25 21:22:52 +0000395 (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 +0000396item is removed and returned.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000397
398
399
400Operations on mappings (dictionaries)
401
402 Operations on mappings
403 Operation Result Notes
404len(d) the number of items in d
405d[k] the item of d with key k (1)
406d[k] = x set d[k] to x
407del d[k] remove d[k] from d (1)
408d.clear() remove all items from d
409d.copy() a shallow copy of d
Raymond Hettinger72348842003-01-25 21:22:52 +0000410d.get(k,defaultval) the item of d with key k (4)
Raymond Hettingere685f942003-01-26 03:29:15 +0000411d.has_key(k) True if d has key k, else False
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000412d.items() a copy of d's list of (key, item) pairs (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000413d.iteritems() an iterator over (key, value) pairs (7)
414d.iterkeys() an iterator over the keys of d (7)
415d.itervalues() an iterator over the values of d (7)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000416d.keys() a copy of d's list of keys (2)
417d1.update(d2) for k, v in d2.items(): d1[k] = v (3)
418d.values() a copy of d's list of values (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000419d.pop(k) remove d[k] and return its value
420d.popitem() remove and return an arbitrary (6)
421 (key, item) pair
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000422d.setdefault(k,defaultval) the item of d with key k (5)
423
424 Notes :
425 TypeError is raised if key is not acceptable
426 (1) KeyError is raised if key k is not in the map
427 (2) Keys and values are listed in random order
428 (3) d2 must be of the same type as d1
429 (4) Never raises an exception if k is not in the map, instead it returns
430 defaultVal.
431 defaultVal is optional, when not provided and k is not in the map,
432 None is returned.
433 (5) Never raises an exception if k is not in the map, instead it returns
434 defaultVal, and adds k to map with value defaultVal. defaultVal is
435 optional. When not provided and k is not in the map, None is returned and
436 added to map.
Raymond Hettinger72348842003-01-25 21:22:52 +0000437 (6) Raises a KeyError if the dictionary is emtpy.
438 (7) While iterating over a dictionary, the values may be updated but
439 the keys cannot be changed.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000440
441Operations on strings
442
443Note that these string methods largely (but not completely) supersede the
444functions available in the string module.
445
446
447 Operations on strings
448 Operation Result Notes
449s.capitalize() return a copy of s with only its first character
450 capitalized.
451s.center(width) return a copy of s centered in a string of length width (1)
452 .
453s.count(sub[ return the number of occurrences of substring sub in (2)
454,start[,end]]) string s.
Raymond Hettinger72348842003-01-25 21:22:52 +0000455s.decode(([ return a decoded version of s. (3)
456 encoding
457 [,errors]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000458s.encode([ return an encoded version of s. Default encoding is the
Raymond Hettinger72348842003-01-25 21:22:52 +0000459 encoding current default string encoding. (3)
460 [,errors]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000461s.endswith(suffix return true if s ends with the specified suffix, (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000462 [,start[,end]]) otherwise return False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000463s.expandtabs([ return a copy of s where all tab characters are (4)
464tabsize]) expanded using spaces.
465s.find(sub[,start return the lowest index in s where substring sub is (2)
466[,end]]) found. Return -1 if sub is not found.
467s.index(sub[ like find(), but raise ValueError when the substring is (2)
468,start[,end]]) not found.
Raymond Hettinger72348842003-01-25 21:22:52 +0000469s.isalnum() return True if all characters in s are alphanumeric, (5)
470 False otherwise.
471s.isalpha() return True if all characters in s are alphabetic, (5)
472 False otherwise.
473s.isdigit() return True if all characters in s are digit (5)
474 characters, False otherwise.
475s.islower() return True if all characters in s are lowercase, False (6)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000476 otherwise.
Raymond Hettinger72348842003-01-25 21:22:52 +0000477s.isspace() return True if all characters in s are whitespace (5)
478 characters, False otherwise.
479s.istitle() return True if string s is a titlecased string, False (7)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000480 otherwise.
Raymond Hettinger72348842003-01-25 21:22:52 +0000481s.isupper() return True if all characters in s are uppercase, False (6)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000482 otherwise.
483s.join(seq) return a concatenation of the strings in the sequence
Mark Dickinson3e4caeb2009-02-21 20:27:01 +0000484 seq, separated by 's's.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000485s.ljust(width) return s left justified in a string of length width. (1),
486 (8)
487s.lower() return a copy of s converted to lowercase.
488s.lstrip() return a copy of s with leading whitespace removed.
489s.replace(old, return a copy of s with all occurrences of substring (9)
490new[, maxsplit]) old replaced by new.
491s.rfind(sub[ return the highest index in s where substring sub is (2)
492,start[,end]]) found. Return -1 if sub is not found.
493s.rindex(sub[ like rfind(), but raise ValueError when the substring (2)
494,start[,end]]) is not found.
495s.rjust(width) return s right justified in a string of length width. (1),
496 (8)
497s.rstrip() return a copy of s with trailing whitespace removed.
498s.split([sep[ return a list of the words in s, using sep as the (10)
499,maxsplit]]) delimiter string.
500s.splitlines([ return a list of the lines in s, breaking at line (11)
501keepends]) boundaries.
502s.startswith return true if s starts with the specified prefix,
503(prefix[,start[ otherwise return false. (2)
504,end]])
505s.strip() return a copy of s with leading and trailing whitespace
506 removed.
507s.swapcase() return a copy of s with uppercase characters converted
508 to lowercase and vice versa.
509 return a titlecased copy of s, i.e. words start with
510s.title() uppercase characters, all remaining cased characters
511 are lowercase.
512s.translate(table return a copy of s mapped through translation table (12)
513[,deletechars]) table.
514s.upper() return a copy of s converted to uppercase.
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000515s.zfill(width) return a string padded with zeroes on the left side and
Raymond Hettinger72348842003-01-25 21:22:52 +0000516 sliding a minus sign left if necessary. never truncates.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000517
518Notes :
519 (1) Padding is done using spaces.
520 (2) If optional argument start is supplied, substring s[start:] is
521processed. If optional arguments start and end are supplied, substring s[start:
522end] is processed.
523 (3) Optional argument errors may be given to set a different error handling
524scheme. The default for errors is 'strict', meaning that encoding errors raise
525a ValueError. Other possible values are 'ignore' and 'replace'.
526 (4) If optional argument tabsize is not given, a tab size of 8 characters
527is assumed.
528 (5) Returns false if string s does not contain at least one character.
529 (6) Returns false if string s does not contain at least one cased
530character.
531 (7) A titlecased string is a string in which uppercase characters may only
532follow uncased characters and lowercase characters only cased ones.
533 (8) s is returned if width is less than len(s).
534 (9) If the optional argument maxsplit is given, only the first maxsplit
535occurrences are replaced.
536 (10) If sep is not specified or None, any whitespace string is a separator.
537If maxsplit is given, at most maxsplit splits are done.
538 (11) Line breaks are not included in the resulting list unless keepends is
539given and true.
540 (12) table must be a string of length 256. All characters occurring in the
541optional argument deletechars are removed prior to translation.
542
543String formatting with the % operator
544
545formatString % args--> evaluates to a string
546
547 * formatString uses C printf format codes : %, c, s, i, d, u, o, x, X, e, E,
548 f, g, G, r (details below).
549 * Width and precision may be a * to specify that an integer argument gives
550 the actual width or precision.
551 * The flag characters -, +, blank, # and 0 are understood. (details below)
552 * %s will convert any type argument to string (uses str() function)
553 * args may be a single arg or a tuple of args
554
555 '%s has %03d quote types.' % ('Python', 2) # => 'Python has 002 quote types.'
556
557 * Right-hand-side can also be a mapping:
558
559 a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
560(vars() function very handy to use on right-hand-side.)
561
562 Format codes
563Conversion Meaning
564d Signed integer decimal.
565i Signed integer decimal.
566o Unsigned octal.
567u Unsigned decimal.
Neal Norwitz114dd942008-02-24 08:27:49 +0000568x Unsigned hexadecimal (lowercase).
569X Unsigned hexadecimal (uppercase).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000570e Floating point exponential format (lowercase).
571E Floating point exponential format (uppercase).
572f Floating point decimal format.
573F Floating point decimal format.
574g Same as "e" if exponent is greater than -4 or less than precision,
575 "f" otherwise.
576G Same as "E" if exponent is greater than -4 or less than precision,
577 "F" otherwise.
578c Single character (accepts integer or single character string).
579r String (converts any python object using repr()).
580s String (converts any python object using str()).
581% No argument is converted, results in a "%" character in the result.
582 (The complete specification is %%.)
583
584 Conversion flag characters
585Flag Meaning
586# The value conversion will use the ``alternate form''.
5870 The conversion will be zero padded.
588- The converted value is left adjusted (overrides "-").
589 (a space) A blank should be left before a positive number (or empty
590 string) produced by a signed conversion.
591+ A sign character ("+" or "-") will precede the conversion (overrides a
592 "space" flag).
593
594File Objects
595
596Created with built-in function open; may be created by other modules' functions
597as well.
598
599Operators on file objects
600
601 File operations
602 Operation Result
603f.close() Close file f.
604f.fileno() Get fileno (fd) for file f.
605f.flush() Flush file f's internal buffer.
Raymond Hettingere685f942003-01-26 03:29:15 +0000606f.isatty() True if file f is connected to a tty-like dev, else False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000607f.read([size]) Read at most size bytes from file f and return as a string
608 object. If size omitted, read to EOF.
609f.readline() Read one entire line from file f.
610f.readlines() Read until EOF with readline() and return list of lines read.
611 Set file f's position, like "stdio's fseek()".
612f.seek(offset[, whence == 0 then use absolute indexing.
613whence=0]) whence == 1 then offset relative to current pos.
614 whence == 2 then offset relative to file end.
615f.tell() Return file f's current position (byte offset).
616f.write(str) Write string to file f.
617f.writelines(list Write list of strings to file f.
618)
619
620File Exceptions
621
622 EOFError
623 End-of-file hit when reading (may be raised many times, e.g. if f is a
624 tty).
625 IOError
Raymond Hettingere685f942003-01-26 03:29:15 +0000626 Other I/O-related I/O operation failure.
627 OSError
628 OS system call failed.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000629
630
631 Advanced Types
632
633 -See manuals for more details -
634 + Module objects
635 + Class objects
636 + Class instance objects
637 + Type objects (see module: types)
638 + File objects (see above)
639 + Slice objects
640 + XRange objects
641 + Callable types:
642 o User-defined (written in Python):
643 # User-defined Function objects
644 # User-defined Method objects
645 o Built-in (written in C):
646 # Built-in Function objects
647 # Built-in Method objects
648 + Internal Types:
649 o Code objects (byte-compile executable Python code: bytecode)
650 o Frame objects (execution frames)
651 o Traceback objects (stack trace of an exception)
652
653
654 Statements
655
656 pass -- Null statement
657 del name[,name]* -- Unbind name(s) from object. Object will be indirectly
658 (and automatically) deleted only if no longer referenced.
659 print [>> fileobject,] [s1 [, s2 ]* [,]
660 -- Writes to sys.stdout, or to fileobject if supplied.
661 Puts spaces between arguments. Puts newline at end
662 unless statement ends with comma.
663 Print is not required when running interactively,
664 simply typing an expression will print its value,
665 unless the value is None.
666 exec x [in globals [,locals]]
667 -- Executes x in namespaces provided. Defaults
668 to current namespaces. x can be a string, file
669 object or a function object.
670 callable(value,... [id=value], [*args], [**kw])
671 -- Call function callable with parameters. Parameters can
672 be passed by name or be omitted if function
673 defines default values. E.g. if callable is defined as
674 "def callable(p1=1, p2=2)"
675 "callable()" <=> "callable(1, 2)"
676 "callable(10)" <=> "callable(10, 2)"
677 "callable(p2=99)" <=> "callable(1, 99)"
678 *args is a tuple of positional arguments.
679 **kw is a dictionary of keyword arguments.
680
681 Assignment operators
682
683 Caption
684 Operator Result Notes
685 a = b Basic assignment - assign object b to label a (1)
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 a >>= b Roughly equivalent to a = a >> b (2)
696 a <<= b Roughly equivalent to a = a << b (2)
697
698 Notes :
699 (1) Can unpack tuples, lists, and strings.
700 first, second = a[0:2]; [f, s] = range(2); c1,c2,c3='abc'
701 Tip: x,y = y,x swaps x and y.
702 (2) Not exactly equivalent - a is evaluated only once. Also, where
703 possible, operation performed in-place - a is modified rather than
704 replaced.
705
706 Control Flow
707
708 if condition: suite
709 [elif condition: suite]*
710 [else: suite] -- usual if/else_if/else statement
711 while condition: suite
712 [else: suite]
713 -- usual while statement. "else" suite is executed
714 after loop exits, unless the loop is exited with
715 "break"
716 for element in sequence: suite
717 [else: suite]
718 -- iterates over sequence, assigning each element to element.
719 Use built-in range function to iterate a number of times.
720 "else" suite executed at end unless loop exited
721 with "break"
722 break -- immediately exits "for" or "while" loop
723 continue -- immediately does next iteration of "for" or "while" loop
724 return [result] -- Exits from function (or method) and returns result (use a tuple to
725 return more than one value). If no result given, then returns None.
Raymond Hettingere685f942003-01-26 03:29:15 +0000726 yield result -- Freezes the execution frame of a generator and returns the result
727 to the iterator's .next() method. Upon the next call to next(),
728 resumes execution at the frozen point with all of the local variables
729 still intact.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000730
731 Exception Statements
732
733 assert expr[, message]
734 -- expr is evaluated. if false, raises exception AssertionError
735 with message. Inhibited if __debug__ is 0.
736 try: suite1
737 [except [exception [, value]: suite2]+
738 [else: suite3]
739 -- statements in suite1 are executed. If an exception occurs, look
740 in "except" clauses for matching <exception>. If matches or bare
741 "except" execute suite of that clause. If no exception happens
742 suite in "else" clause is executed after suite1.
743 If exception has a value, it is put in value.
744 exception can also be tuple of exceptions, e.g.
745 "except (KeyError, NameError), val: print val"
746 try: suite1
747 finally: suite2
748 -- statements in suite1 are executed. If no
749 exception, execute suite2 (even if suite1 is
750 exited with a "return", "break" or "continue"
751 statement). If exception did occur, executes
752 suite2 and then immediately reraises exception.
753 raise exception [,value [, traceback]]
754 -- raises exception with optional value
755 value. Arg traceback specifies a traceback object to
756 use when printing the exception's backtrace.
757 raise -- a raise statement without arguments re-raises
758 the last exception raised in the current function
759An exception is either a string (object) or a class instance.
760 Can create a new one simply by creating a new string:
761
762 my_exception = 'You did something wrong'
763 try:
764 if bad:
765 raise my_exception, bad
766 except my_exception, value:
767 print 'Oops', value
768
769Exception classes must be derived from the predefined class: Exception, e.g.:
770 class text_exception(Exception): pass
771 try:
772 if bad:
773 raise text_exception()
774 # This is a shorthand for the form
775 # "raise <class>, <instance>"
776 except Exception:
777 print 'Oops'
778 # This will be printed because
779 # text_exception is a subclass of Exception
780When an error message is printed for an unhandled exception which is a
781class, the class name is printed, then a colon and a space, and
782finally the instance converted to a string using the built-in function
783str().
784All built-in exception classes derives from StandardError, itself
785derived from Exception.
786
787Name Space Statements
788
789[1.51: On Mac & Windows, the case of module file names must now match the case
790as used
791 in the import statement]
792Packages (>1.5): a package is a name space which maps to a directory including
793 module(s) and the special initialization module '__init__.py'
794 (possibly empty). Packages/dirs can be nested. You address a
795 module's symbol via '[package.[package...]module.symbol's.
796import module1 [as name1] [, module2]*
797 -- imports modules. Members of module must be
798 referred to by qualifying with [package.]module name:
799 "import sys; print sys.argv:"
800 "import package1.subpackage.module; package1.subpackage.module.foo()"
801 module1 renamed as name1, if supplied.
802from module import name1 [as othername1] [, name2]*
803 -- imports names from module module in current namespace.
804 "from sys import argv; print argv"
805 "from package1 import module; module.foo()"
806 "from package1.module import foo; foo()"
807 name1 renamed as othername1, if supplied.
808from module import *
809 -- imports all names in module, except those starting with "_";
810 *to be used sparsely, beware of name clashes* :
811 "from sys import *; print argv"
812 "from package.module import *; print x'
813 NB: "from package import *" only imports the symbols defined
814 in the package's __init__.py file, not those in the
815 template modules!
816global name1 [, name2]*
817 -- names are from global scope (usually meaning from module)
818 rather than local (usually meaning only in function).
819 -- E.g. in fct without "global" statements, assuming
820 "a" is name that hasn't been used in fct or module
821 so far:
822 -Try to read from "a" -> NameError
823 -Try to write to "a" -> creates "a" local to fcn
824 -If "a" not defined in fct, but is in module, then
825 -Try to read from "a", gets value from module
826 -Try to write to "a", creates "a" local to fct
827 But note "a[0]=3" starts with search for "a",
828 will use to global "a" if no local "a".
829
830Function Definition
831
832def func_id ([param_list]): suite
833 -- Creates a function object & binds it to name func_id.
834
835 param_list ::= [id [, id]*]
836 id ::= value | id = value | *id | **id
837 [Args are passed by value.Thus only args representing a mutable object
838 can be modified (are inout parameters). Use a tuple to return more than
839 one value]
840
841Example:
842 def test (p1, p2 = 1+1, *rest, **keywords):
843 -- Parameters with "=" have default value (v is
844 evaluated when function defined).
845 If list has "*id" then id is assigned a tuple of
846 all remaining args passed to function (like C vararg)
847 If list has "**id" then id is assigned a dictionary of
848 all extra arguments passed as keywords.
849
850Class Definition
851
852class <class_id> [(<super_class1> [,<super_class2>]*)]: <suite>
853 -- Creates a class object and assigns it name <class_id>
854 <suite> may contain local "defs" of class methods and
855 assignments to class attributes.
856Example:
857 class my_class (class1, class_list[3]): ...
858 Creates a class object inheriting from both "class1" and whatever
859 class object "class_list[3]" evaluates to. Assigns new
860 class object to name "my_class".
861 - First arg to class methods is always instance object, called 'self'
862 by convention.
863 - Special method __init__() is called when instance is created.
864 - Special method __del__() called when no more reference to object.
865 - Create instance by "calling" class object, possibly with arg
866 (thus instance=apply(aClassObject, args...) creates an instance!)
867 - In current implementation, can't subclass off built-in
868 classes. But can "wrap" them, see UserDict & UserList modules,
869 and see __getattr__() below.
870Example:
871 class c (c_parent):
872 def __init__(self, name): self.name = name
873 def print_name(self): print "I'm", self.name
874 def call_parent(self): c_parent.print_name(self)
875 instance = c('tom')
876 print instance.name
877 'tom'
878 instance.print_name()
879 "I'm tom"
880 Call parent's super class by accessing parent's method
881 directly and passing "self" explicitly (see "call_parent"
882 in example above).
883 Many other special methods available for implementing
884 arithmetic operators, sequence, mapping indexing, etc.
885
886Documentation Strings
887
888Modules, classes and functions may be documented by placing a string literal by
889itself as the first statement in the suite. The documentation can be retrieved
890by getting the '__doc__' attribute from the module, class or function.
891Example:
892 class C:
893 "A description of C"
894 def __init__(self):
895 "A description of the constructor"
896 # etc.
897Then c.__doc__ == "A description of C".
898Then c.__init__.__doc__ == "A description of the constructor".
899
900Others
901
902lambda [param_list]: returnedExpr
903 -- Creates an anonymous function. returnedExpr must be
904 an expression, not a statement (e.g., not "if xx:...",
905 "print xxx", etc.) and thus can't contain newlines.
906 Used mostly for filter(), map(), reduce() functions, and GUI callbacks..
907List comprehensions
908result = [expression for item1 in sequence1 [if condition1]
909 [for item2 in sequence2 ... for itemN in sequenceN]
910 ]
911is equivalent to:
912result = []
913for item1 in sequence1:
914 for item2 in sequence2:
915 ...
916 for itemN in sequenceN:
917 if (condition1) and furthur conditions:
918 result.append(expression)
919
920
921
922Built-In Functions
923
924 Built-In Functions
925 Function Result
926__import__(name[, Imports module within the given context (see lib ref for
927globals[, locals[, more details)
928fromlist]]])
929abs(x) Return the absolute value of number x.
930apply(f, args[, Calls func/method f with arguments args and optional
931keywords]) keywords.
Raymond Hettingere685f942003-01-26 03:29:15 +0000932bool(x) Returns True when the argument x is true and False otherwise.
933buffer(obj) Creates a buffer reference to an object.
934callable(x) Returns True if x callable, else False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000935chr(i) Returns one-character string whose ASCII code isinteger i
Raymond Hettingere685f942003-01-26 03:29:15 +0000936classmethod(f) Converts a function f, into a method with the class as the
937 first argument. Useful for creating alternative constructors.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000938cmp(x,y) Returns negative, 0, positive if x <, ==, > to y
939coerce(x,y) Returns a tuple of the two numeric arguments converted to a
940 common type.
941 Compiles string into a code object.filename is used in
942 error message, can be any string. It isusually the file
943compile(string, from which the code was read, or eg. '<string>'if not read
944filename, kind) from file.kind can be 'eval' if string is a single stmt, or
945 'single' which prints the output of expression statements
946 thatevaluate to something else than None, or be 'exec'.
947complex(real[, Builds a complex object (can also be done using J or j
948image]) suffix,e.g. 1+3J)
949delattr(obj, name) deletes attribute named name of object obj <=> del obj.name
950 If no args, returns the list of names in current
Raymond Hettingere685f942003-01-26 03:29:15 +0000951dict([items]) Create a new dictionary from the specified item list.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000952dir([object]) localsymbol table. With a module, class or class
953 instanceobject as arg, returns list of names in its attr.
954 dict.
955divmod(a,b) Returns tuple of (a/b, a%b)
Raymond Hettingere685f942003-01-26 03:29:15 +0000956enumerate(seq) Return a iterator giving: (0, seq[0]), (1, seq[1]), ...
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000957eval(s[, globals[, Eval string s in (optional) globals, locals contexts.s must
958locals]]) have no NUL's or newlines. s can also be acode object.
959 Example: x = 1; incr_x = eval('x + 1')
960execfile(file[, Executes a file without creating a new module, unlike
961globals[, locals]]) import.
Raymond Hettingere685f942003-01-26 03:29:15 +0000962file() Synonym for open().
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000963filter(function, Constructs a list from those elements of sequence for which
964sequence) function returns true. function takes one parameter.
965float(x) Converts a number or a string to floating point.
966getattr(object, [<default> arg added in 1.5.2]Gets attribute called name
967name[, default])) from object,e.g. getattr(x, 'f') <=> x.f). If not found,
968 raisesAttributeError or returns default if specified.
969globals() Returns a dictionary containing current global variables.
970hasattr(object, Returns true if object has attr called name.
971name)
972hash(object) Returns the hash value of the object (if it has one)
Raymond Hettingere685f942003-01-26 03:29:15 +0000973help(f) Display documentation on object f.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000974hex(x) Converts a number x to a hexadecimal string.
975id(object) Returns a unique 'identity' integer for an object.
976input([prompt]) Prints prompt if given. Reads input and evaluates it.
977 Converts a number or a string to a plain integer. Optional
978int(x[, base]) base paramenter specifies base from which to convert string
979 values.
980intern(aString) Enters aString in the table of "interned strings"
981 andreturns the string. Interned strings are 'immortals'.
982isinstance(obj, returns true if obj is an instance of class. Ifissubclass
983class) (A,B) then isinstance(x,A) => isinstance(x,B)
984issubclass(class1, returns true if class1 is derived from class2
985class2)
986 Returns the length (the number of items) of an object
Raymond Hettingere685f942003-01-26 03:29:15 +0000987iter(collection) Returns an iterator over the collection.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000988len(obj) (sequence, dictionary, or instance of class implementing
989 __len__).
990list(sequence) Converts sequence into a list. If already a list,returns a
991 copy of it.
992locals() Returns a dictionary containing current local variables.
993 Converts a number or a string to a long integer. Optional
994long(x[, base]) base paramenter specifies base from which to convert string
995 values.
996 Applies function to every item of list and returns a listof
997map(function, list, the results. If additional arguments are passed,function
998...) must take that many arguments and it is givento function on
999 each call.
1000max(seq) Returns the largest item of the non-empty sequence seq.
1001min(seq) Returns the smallest item of a non-empty sequence seq.
1002oct(x) Converts a number to an octal string.
1003open(filename [, Returns a new file object. First two args are same asthose
1004mode='r', [bufsize= for C's "stdio open" function. bufsize is 0for unbuffered,
1005implementation 1 for line-buffered, negative forsys-default, all else, of
1006dependent]]) (about) given size.
1007ord(c) Returns integer ASCII value of c (a string of len 1). Works
1008 with Unicode char.
Raymond Hettingere685f942003-01-26 03:29:15 +00001009object() Create a base type. Used as a superclass for new-style objects.
1010open(name Open a file.
1011 [, mode
1012 [, buffering]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001013pow(x, y [, z]) Returns x to power y [modulo z]. See also ** operator.
Raymond Hettingere685f942003-01-26 03:29:15 +00001014property() Created a property with access controlled by functions.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001015range(start [,end Returns list of ints from >= start and < end.With 1 arg,
1016[, step]]) list from 0..arg-1With 2 args, list from start..end-1With 3
1017 args, list from start up to end by step
1018raw_input([prompt]) Prints prompt if given, then reads string from stdinput (no
1019 trailing \n). See also input().
1020reduce(f, list [, Applies the binary function f to the items oflist so as to
1021init]) reduce the list to a single value.If init given, it is
1022 "prepended" to list.
1023 Re-parses and re-initializes an already imported module.
1024 Useful in interactive mode, if you want to reload amodule
1025reload(module) after fixing it. If module was syntacticallycorrect but had
1026 an error in initialization, mustimport it one more time
1027 before calling reload().
1028 Returns a string containing a printable and if possible
1029repr(object) evaluable representation of an object. <=> `object`
1030 (usingbackquotes). Class redefinissable (__repr__). See
1031 also str()
1032round(x, n=0) Returns the floating point value x rounded to n digitsafter
1033 the decimal point.
1034setattr(object, This is the counterpart of getattr().setattr(o, 'foobar',
1035name, value) 3) <=> o.foobar = 3Creates attribute if it doesn't exist!
1036slice([start,] stop Returns a slice object representing a range, with R/
1037[, step]) Oattributes: start, stop, step.
1038 Returns a string containing a nicely
Raymond Hettingere685f942003-01-26 03:29:15 +00001039staticmethod() Convert a function to method with no self or class
1040 argument. Useful for methods associated with a class that
1041 do not need access to an object's internal state.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001042str(object) printablerepresentation of an object. Class overridable
1043 (__str__).See also repr().
Raymond Hettingere685f942003-01-26 03:29:15 +00001044super(type) Create an unbound super object. Used to call cooperative
1045 superclass methods.
Raymond Hettingerca60cac2003-07-12 23:55:57 +00001046sum(sequence, Add the values in the sequence and return the sum.
Georg Brandla6168f92008-05-25 07:20:14 +00001047 [start])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001048tuple(sequence) Creates a tuple with same elements as sequence. If already
1049 a tuple, return itself (not a copy).
1050 Returns a type object [see module types] representing
1051 thetype of obj. Example: import typesif type(x) ==
1052type(obj) types.StringType: print 'It is a string'NB: it is
1053 recommanded to use the following form:if isinstance(x,
1054 types.StringType): etc...
1055unichr(code) code.
1056unicode(string[, Creates a Unicode string from a 8-bit string, using
1057encoding[, error thegiven encoding name and error treatment ('strict',
1058]]]) 'ignore',or 'replace'}.
1059 Without arguments, returns a dictionary correspondingto the
1060 current local symbol table. With a module,class or class
1061vars([object]) instance object as argumentreturns a dictionary
1062 corresponding to the object'ssymbol table. Useful with "%"
1063 formatting operator.
1064xrange(start [, end Like range(), but doesn't actually store entire listall at
1065[, step]]) once. Good to use in "for" loops when there is abig range
1066 and little memory.
1067zip(seq1[, seq2, Returns a list of tuples where each tuple contains the nth
1068...]) element of each of the argument sequences.
1069
1070
1071
1072
1073Built-In Exceptions
1074
1075Exception>
1076 Root class for all exceptions
1077 SystemExit
1078 On 'sys.exit()'
Raymond Hettingere685f942003-01-26 03:29:15 +00001079 StopIteration
1080 Signal the end from iterator.next()
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001081 StandardError
1082 Base class for all built-in exceptions; derived from Exception
1083 root class.
1084 ArithmeticError
1085 Base class for OverflowError, ZeroDivisionError,
1086 FloatingPointError
1087 FloatingPointError
1088 When a floating point operation fails.
1089 OverflowError
1090 On excessively large arithmetic operation
1091 ZeroDivisionError
1092 On division or modulo operation with 0 as 2nd arg
1093 AssertionError
1094 When an assert statement fails.
1095 AttributeError
1096 On attribute reference or assignment failure
1097 EnvironmentError [new in 1.5.2]
1098 On error outside Python; error arg tuple is (errno, errMsg...)
1099 IOError [changed in 1.5.2]
1100 I/O-related operation failure
1101 OSError [new in 1.5.2]
1102 used by the os module's os.error exception.
1103 EOFError
1104 Immediate end-of-file hit by input() or raw_input()
1105 ImportError
1106 On failure of `import' to find module or name
1107 KeyboardInterrupt
1108 On user entry of the interrupt key (often `Control-C')
1109 LookupError
1110 base class for IndexError, KeyError
1111 IndexError
1112 On out-of-range sequence subscript
1113 KeyError
1114 On reference to a non-existent mapping (dict) key
1115 MemoryError
1116 On recoverable memory exhaustion
1117 NameError
1118 On failure to find a local or global (unqualified) name
1119 RuntimeError
1120 Obsolete catch-all; define a suitable error instead
1121 NotImplementedError [new in 1.5.2]
1122 On method not implemented
1123 SyntaxError
1124 On parser encountering a syntax error
1125 IndentationError
1126 On parser encountering an indentation syntax error
1127 TabError
1128 On parser encountering an indentation syntax error
1129 SystemError
1130 On non-fatal interpreter error - bug - report it
1131 TypeError
1132 On passing inappropriate type to built-in op or func
1133 ValueError
1134 On arg error not covered by TypeError or more precise
Raymond Hettingere685f942003-01-26 03:29:15 +00001135 Warning
1136 UserWarning
1137 DeprecationWarning
1138 PendingDeprecationWarning
1139 SyntaxWarning
Raymond Hettingere685f942003-01-26 03:29:15 +00001140 RuntimeWarning
1141 FutureWarning
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001142
1143
1144
1145Standard methods & operators redefinition in classes
1146
1147Standard methods & operators map to special '__methods__' and thus may be
Georg Brandl5a85d5c2009-06-24 06:41:19 +00001148 redefined (mostly in user-defined classes), e.g.:
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001149 class x:
1150 def __init__(self, v): self.value = v
1151 def __add__(self, r): return self.value + r
1152 a = x(3) # sort of like calling x.__init__(a, 3)
1153 a + 4 # is equivalent to a.__add__(4)
1154
1155Special methods for any class
1156
1157(s: self, o: other)
1158 __init__(s, args) instance initialization (on construction)
1159 __del__(s) called on object demise (refcount becomes 0)
1160 __repr__(s) repr() and `...` conversions
1161 __str__(s) str() and 'print' statement
1162 __cmp__(s, o) Compares s to o and returns <0, 0, or >0.
1163 Implements >, <, == etc...
1164 __hash__(s) Compute a 32 bit hash code; hash() and dictionary ops
Raymond Hettingere685f942003-01-26 03:29:15 +00001165 __nonzero__(s) Returns False or True for truth value testing
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001166 __getattr__(s, name) called when attr lookup doesn't find <name>
1167 __setattr__(s, name, val) called when setting an attr
1168 (inside, don't use "self.name = value"
1169 use "self.__dict__[name] = val")
1170 __delattr__(s, name) called to delete attr <name>
1171 __call__(self, *args) called when an instance is called as function.
1172
1173Operators
1174
1175 See list in the operator module. Operator function names are provided with
1176 2 variants, with or without
1177 ading & trailing '__' (eg. __add__ or add).
1178
1179 Numeric operations special methods
1180 (s: self, o: other)
1181
1182 s+o = __add__(s,o) s-o = __sub__(s,o)
1183 s*o = __mul__(s,o) s/o = __div__(s,o)
1184 s%o = __mod__(s,o) divmod(s,o) = __divmod__(s,o)
1185 s**o = __pow__(s,o)
1186 s&o = __and__(s,o)
1187 s^o = __xor__(s,o) s|o = __or__(s,o)
1188 s<<o = __lshift__(s,o) s>>o = __rshift__(s,o)
1189 nonzero(s) = __nonzero__(s) (used in boolean testing)
1190 -s = __neg__(s) +s = __pos__(s)
1191 abs(s) = __abs__(s) ~s = __invert__(s) (bitwise)
1192 s+=o = __iadd__(s,o) s-=o = __isub__(s,o)
1193 s*=o = __imul__(s,o) s/=o = __idiv__(s,o)
1194 s%=o = __imod__(s,o)
1195 s**=o = __ipow__(s,o)
1196 s&=o = __iand__(s,o)
1197 s^=o = __ixor__(s,o) s|=o = __ior__(s,o)
1198 s<<=o = __ilshift__(s,o) s>>=o = __irshift__(s,o)
1199 Conversions
1200 int(s) = __int__(s) long(s) = __long__(s)
1201 float(s) = __float__(s) complex(s) = __complex__(s)
1202 oct(s) = __oct__(s) hex(s) = __hex__(s)
1203 coerce(s,o) = __coerce__(s,o)
1204 Right-hand-side equivalents for all binary operators exist;
1205 are called when class instance is on r-h-s of operator:
1206 a + 3 calls __add__(a, 3)
1207 3 + a calls __radd__(a, 3)
1208
1209 All seqs and maps, general operations plus:
1210 (s: self, i: index or key)
1211
1212 len(s) = __len__(s) length of object, >= 0. Length 0 == false
1213 s[i] = __getitem__(s,i) Element at index/key i, origin 0
1214
1215 Sequences, general methods, plus:
1216 s[i]=v = __setitem__(s,i,v)
1217 del s[i] = __delitem__(s,i)
1218 s[i:j] = __getslice__(s,i,j)
1219 s[i:j]=seq = __setslice__(s,i,j,seq)
1220 del s[i:j] = __delslice__(s,i,j) == s[i:j] = []
1221 seq * n = __repeat__(seq, n)
1222 s1 + s2 = __concat__(s1, s2)
1223 i in s = __contains__(s, i)
1224 Mappings, general methods, plus
1225 hash(s) = __hash__(s) - hash value for dictionary references
1226 s[k]=v = __setitem__(s,k,v)
1227 del s[k] = __delitem__(s,k)
1228
1229Special informative state attributes for some types:
1230
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001231 Modules:
1232 __doc__ (string/None, R/O): doc string (<=> __dict__['__doc__'])
1233 __name__(string, R/O): module name (also in __dict__['__name__'])
1234 __dict__ (dict, R/O): module's name space
1235 __file__(string/undefined, R/O): pathname of .pyc, .pyo or .pyd (undef for
1236 modules statically linked to the interpreter)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001237
1238 Classes: [in bold: writable since 1.5.2]
1239 __doc__ (string/None, R/W): doc string (<=> __dict__['__doc__'])
Raymond Hettingere685f942003-01-26 03:29:15 +00001240 __module__ is the module name in which the class was defined
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001241 __name__(string, R/W): class name (also in __dict__['__name__'])
1242 __bases__ (tuple, R/W): parent classes
1243 __dict__ (dict, R/W): attributes (class name space)
1244
1245 Instances:
1246 __class__ (class, R/W): instance's class
1247 __dict__ (dict, R/W): attributes
Raymond Hettingere685f942003-01-26 03:29:15 +00001248
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001249 User-defined functions: [bold: writable since 1.5.2]
1250 __doc__ (string/None, R/W): doc string
1251 __name__(string, R/O): function name
1252 func_doc (R/W): same as __doc__
1253 func_name (R/O): same as __name__
1254 func_defaults (tuple/None, R/W): default args values if any
1255 func_code (code, R/W): code object representing the compiled function body
1256 func_globals (dict, R/O): ref to dictionary of func global variables
Raymond Hettingere685f942003-01-26 03:29:15 +00001257 func_dict (dict, R/W): same as __dict__ contains the namespace supporting
1258 arbitrary function attributes
1259 func_closure (R/O): None or a tuple of cells that contain bindings
1260 for the function's free variables.
1261
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001262
1263 User-defined Methods:
1264 __doc__ (string/None, R/O): doc string
1265 __name__(string, R/O): method name (same as im_func.__name__)
1266 im_class (class, R/O): class defining the method (may be a base class)
1267 im_self (instance/None, R/O): target instance object (None if unbound)
1268 im_func (function, R/O): function object
Raymond Hettingere685f942003-01-26 03:29:15 +00001269
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001270 Built-in Functions & methods:
1271 __doc__ (string/None, R/O): doc string
1272 __name__ (string, R/O): function name
1273 __self__ : [methods only] target object
Raymond Hettingere685f942003-01-26 03:29:15 +00001274
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001275 Codes:
1276 co_name (string, R/O): function name
1277 co_argcount (int, R/0): number of positional args
1278 co_nlocals (int, R/O): number of local vars (including args)
1279 co_varnames (tuple, R/O): names of local vars (starting with args)
Raymond Hettingere685f942003-01-26 03:29:15 +00001280 co_cellvars (tuple, R/O)) the names of local variables referenced by
1281 nested functions
1282 co_freevars (tuple, R/O)) names of free variables
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001283 co_code (string, R/O): sequence of bytecode instructions
1284 co_consts (tuple, R/O): litterals used by the bytecode, 1st one is
1285 fct doc (or None)
1286 co_names (tuple, R/O): names used by the bytecode
1287 co_filename (string, R/O): filename from which the code was compiled
1288 co_firstlineno (int, R/O): first line number of the function
1289 co_lnotab (string, R/O): string encoding bytecode offsets to line numbers.
1290 co_stacksize (int, R/O): required stack size (including local vars)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001291 co_flags (int, R/O): flags for the interpreter
1292 bit 2 set if fct uses "*arg" syntax
1293 bit 3 set if fct uses '**keywords' syntax
1294 Frames:
1295 f_back (frame/None, R/O): previous stack frame (toward the caller)
1296 f_code (code, R/O): code object being executed in this frame
1297 f_locals (dict, R/O): local vars
1298 f_globals (dict, R/O): global vars
1299 f_builtins (dict, R/O): built-in (intrinsic) names
1300 f_restricted (int, R/O): flag indicating whether fct is executed in
1301 restricted mode
1302 f_lineno (int, R/O): current line number
1303 f_lasti (int, R/O): precise instruction (index into bytecode)
1304 f_trace (function/None, R/W): debug hook called at start of each source line
1305 f_exc_type (Type/None, R/W): Most recent exception type
1306 f_exc_value (any, R/W): Most recent exception value
1307 f_exc_traceback (traceback/None, R/W): Most recent exception traceback
1308 Tracebacks:
1309 tb_next (frame/None, R/O): next level in stack trace (toward the frame where
1310 the exception occurred)
1311 tb_frame (frame, R/O): execution frame of the current level
Fred Drakedb390c12005-10-28 14:39:47 +00001312 tb_lineno (int, R/O): line number where the exception occurred
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001313 tb_lasti (int, R/O): precise instruction (index into bytecode)
1314
1315 Slices:
1316 start (any/None, R/O): lowerbound
1317 stop (any/None, R/O): upperbound
1318 step (any/None, R/O): step value
1319
1320 Complex numbers:
1321 real (float, R/O): real part
1322 imag (float, R/O): imaginary part
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001323
1324
1325Important Modules
1326
1327 sys
1328
1329 Some sys variables
1330 Variable Content
1331argv The list of command line arguments passed to aPython
1332 script. sys.argv[0] is the script name.
1333builtin_module_names A list of strings giving the names of all moduleswritten
1334 in C that are linked into this interpreter.
1335check_interval How often to check for thread switches or signals(measured
1336 in number of virtual machine instructions)
1337exc_type, exc_value, Deprecated since release 1.5. Use exc_info() instead.
1338exc_traceback
1339exitfunc User can set to a parameterless fcn. It will getcalled
1340 before interpreter exits.
1341last_type, Set only when an exception not handled andinterpreter
1342last_value, prints an error. Used by debuggers.
1343last_traceback
1344maxint maximum positive value for integers
1345modules Dictionary of modules that have already been loaded.
1346path Search path for external modules. Can be modifiedby
1347 program. sys.path[0] == dir of script executing
1348platform The current platform, e.g. "sunos5", "win32"
1349ps1, ps2 prompts to use in interactive mode.
1350 File objects used for I/O. One can redirect byassigning a
1351stdin, stdout, new file object to them (or any object:.with a method
1352stderr write(string) for stdout/stderr,.with a method readline()
1353 for stdin)
1354version string containing version info about Python interpreter.
1355 (and also: copyright, dllhandle, exec_prefix, prefix)
1356version_info tuple containing Python version info - (major, minor,
1357 micro, level, serial).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001358
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001359 Some sys functions
1360 Function Result
1361exit(n) Exits with status n. Raises SystemExit exception.(Hence can
1362 be caught and ignored by program)
Raymond Hettingere685f942003-01-26 03:29:15 +00001363getrefcount(object Returns the reference count of the object. Generally one
1364) higher than you might expect, because of object arg temp
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001365 reference.
1366setcheckinterval( Sets the interpreter's thread switching interval (in number
Skip Montanaroeec26f92003-07-02 21:38:34 +00001367interval) of virtual code instructions, default:100).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001368settrace(func) Sets a trace function: called before each line ofcode is
1369 exited.
1370setprofile(func) Sets a profile function for performance profiling.
1371 Info on exception currently being handled; this is atuple
1372 (exc_type, exc_value, exc_traceback).Warning: assigning the
Neal Norwitzadf694b2007-05-29 07:51:39 +00001373exc_info() traceback return value to a local variable in a
Raymond Hettingere685f942003-01-26 03:29:15 +00001374 function handling an exception will cause a circular
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001375 reference.
1376setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII.
1377(encoding)
1378getrecursionlimit Retrieve maximum recursion depth.
1379()
1380setrecursionlimit Set maximum recursion depth. (Defaults to 1000.)
1381()
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001382
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001383
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001384
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001385 os
1386"synonym" for whatever O/S-specific module is proper for current environment.
1387this module uses posix whenever possible.
1388(see also M.A. Lemburg's utility http://www.lemburg.com/files/python/
1389platform.py)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001390
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001391 Some os variables
1392 Variable Meaning
Ronald Oussoren9545a232010-05-05 19:09:31 +00001393name name of O/S-specific module (e.g. "posix", "nt")
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001394path O/S-specific module for path manipulations.
1395 On Unix, os.path.split() <=> posixpath.split()
1396curdir string used to represent current directory ('.')
1397pardir string used to represent parent directory ('..')
1398sep string used to separate directories ('/' or '\'). Tip: use
1399 os.path.join() to build portable paths.
1400altsep Alternate sep
1401if applicable (None
1402otherwise)
1403pathsep character used to separate search path components (as in
1404 $PATH), eg. ';' for windows.
1405linesep line separator as used in binary files, ie '\n' on Unix, '\
1406 r\n' on Dos/Win, '\r'
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001407
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001408 Some os functions
1409 Function Result
1410makedirs(path[, Recursive directory creation (create required intermediary
1411mode=0777]) dirs); os.error if fails.
1412removedirs(path) Recursive directory delete (delete intermediary empty
1413 dirs); if fails.
1414renames(old, new) Recursive directory or file renaming; os.error if fails.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001415
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001416
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001417
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001418 posix
1419don't import this module directly, import os instead !
1420(see also module: shutil for file copy & remove fcts)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001421
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001422 posix Variables
1423Variable Meaning
1424environ dictionary of environment variables, e.g.posix.environ['HOME'].
1425error exception raised on POSIX-related error.
1426 Corresponding value is tuple of errno code and perror() string.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001427
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001428 Some posix functions
1429 Function Result
1430chdir(path) Changes current directory to path.
1431chmod(path, Changes the mode of path to the numeric mode
1432mode)
1433close(fd) Closes file descriptor fd opened with posix.open.
1434_exit(n) Immediate exit, with no cleanups, no SystemExit,etc. Should use
1435 this to exit a child process.
1436execv(p, args) "Become" executable p with args args
1437getcwd() Returns a string representing the current working directory
1438getpid() Returns the current process id
1439fork() Like C's fork(). Returns 0 to child, child pid to parent.[Not
1440 on Windows]
1441kill(pid, Like C's kill [Not on Windows]
1442signal)
1443listdir(path) Lists (base)names of entries in directory path, excluding '.'
1444 and '..'
1445lseek(fd, pos, Sets current position in file fd to position pos, expressedas
1446how) an offset relative to beginning of file (how=0), tocurrent
1447 position (how=1), or to end of file (how=2)
1448mkdir(path[, Creates a directory named path with numeric mode (default 0777)
1449mode])
1450open(file, Like C's open(). Returns file descriptor. Use file object
1451flags, mode) fctsrather than this low level ones.
1452pipe() Creates a pipe. Returns pair of file descriptors (r, w) [Not on
1453 Windows].
1454popen(command, Opens a pipe to or from command. Result is a file object to
1455mode='r', read to orwrite from, as indicated by mode being 'r' or 'w'.
1456bufSize=0) Use it to catch acommand output ('r' mode) or to feed it ('w'
1457 mode).
1458remove(path) See unlink.
1459rename(src, dst Renames/moves the file or directory src to dst. [error iftarget
1460) name already exists]
1461rmdir(path) Removes the empty directory path
1462read(fd, n) Reads n bytes from file descriptor fd and return as string.
1463 Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid,
1464stat(path) st_size, st_atime, st_mtime, st_ctime.[st_ino, st_uid, st_gid
1465 are dummy on Windows]
1466system(command) Executes string command in a subshell. Returns exitstatus of
1467 subshell (usually 0 means OK).
1468 Returns accumulated CPU times in sec (user, system, children's
1469times() user,children's sys, elapsed real time). [3 last not on
1470 Windows]
1471unlink(path) Unlinks ("deletes") the file (not dir!) path. same as: remove
1472utime(path, ( Sets the access & modified time of the file to the given tuple
1473aTime, mTime)) of values.
1474wait() Waits for child process completion. Returns tuple ofpid,
1475 exit_status [Not on Windows]
1476waitpid(pid, Waits for process pid to complete. Returns tuple ofpid,
1477options) exit_status [Not on Windows]
1478write(fd, str) Writes str to file fd. Returns nb of bytes written.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001479
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001480
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001481
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001482 posixpath
1483Do not import this module directly, import os instead and refer to this module
1484as os.path. (e.g. os.path.exists(p)) !
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001485
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001486 Some posixpath functions
1487 Function Result
1488abspath(p) Returns absolute path for path p, taking current working dir in
1489 account.
1490dirname/
1491basename(p directory and name parts of the path p. See also split.
1492)
1493exists(p) True if string p is an existing path (file or directory)
1494expanduser Returns string that is (a copy of) p with "~" expansion done.
1495(p)
1496expandvars Returns string that is (a copy of) p with environment vars expanded.
1497(p) [Windows: case significant; must use Unix: $var notation, not %var%]
1498getsize( return the size in bytes of filename. raise os.error.
1499filename)
1500getmtime( return last modification time of filename (integer nb of seconds
1501filename) since epoch).
1502getatime( return last access time of filename (integer nb of seconds since
1503filename) epoch).
1504isabs(p) True if string p is an absolute path.
1505isdir(p) True if string p is a directory.
1506islink(p) True if string p is a symbolic link.
1507ismount(p) True if string p is a mount point [true for all dirs on Windows].
1508join(p[,q Joins one or more path components intelligently.
1509[,...]])
1510 Splits p into (head, tail) where tail is lastpathname component and
1511split(p) <head> is everything leadingup to that. <=> (dirname(p), basename
1512 (p))
1513splitdrive Splits path p in a pair ('drive:', tail) [Windows]
1514(p)
1515splitext(p Splits into (root, ext) where last comp of root contains no periods
1516) and ext is empty or startswith a period.
1517 Calls the function visit with arguments(arg, dirname, names) for
1518 each directory recursively inthe directory tree rooted at p
1519walk(p, (including p itself if it's a dir)The argument dirname specifies the
1520visit, arg visited directory, the argumentnames lists the files in the
1521) directory. The visit function maymodify names to influence the set
1522 of directories visited belowdirname, e.g., to avoid visiting certain
1523 parts of the tree.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001524
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001525
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001526
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001527 shutil
1528high-level file operations (copying, deleting).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001529
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001530 Main shutil functions
1531 Function Result
1532copy(src, dst) Copies the contents of file src to file dst, retaining file
1533 permissions.
1534copytree(src, dst Recursively copies an entire directory tree rooted at src
1535[, symlinks]) into dst (which should not already exist). If symlinks is
1536 true, links insrc are kept as such in dst.
1537rmtree(path[, Deletes an entire directory tree, ignoring errors if
1538ignore_errors[, ignore_errors true,or calling onerror(func, path,
1539onerror]]) sys.exc_info()) if supplied with
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001540
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001541(and also: copyfile, copymode, copystat, copy2)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001542
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001543time
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001544
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001545 Variables
1546Variable Meaning
1547altzone signed offset of local DST timezone in sec west of the 0th meridian.
1548daylight nonzero if a DST timezone is specified
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001549
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001550 Functions
1551 Function Result
1552time() return a float representing UTC time in seconds since the epoch.
1553gmtime(secs), return a tuple representing time : (year aaaa, month(1-12),day
1554localtime( (1-31), hour(0-23), minute(0-59), second(0-59), weekday(0-6, 0 is
1555secs) monday), Julian day(1-366), daylight flag(-1,0 or 1))
1556asctime(
1557timeTuple),
1558strftime(
Mark Dickinson3e4caeb2009-02-21 20:27:01 +00001559format, return a formatted string representing time.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001560timeTuple)
1561mktime(tuple) inverse of localtime(). Return a float.
Mark Dickinson3e4caeb2009-02-21 20:27:01 +00001562strptime( parse a formatted string representing time, return tuple as in
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001563string[, gmtime().
1564format])
1565sleep(secs) Suspend execution for <secs> seconds. <secs> can be a float.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001566
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001567and also: clock, ctime.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001568
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001569 string
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001570
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001571As of Python 2.0, much (though not all) of the functionality provided by the
1572string module have been superseded by built-in string methods - see Operations
1573on strings for details.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001574
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001575 Some string variables
1576 Variable Meaning
1577digits The string '0123456789'
1578hexdigits, octdigits legal hexadecimal & octal digits
1579letters, uppercase, lowercase, Strings containing the appropriate
1580whitespace characters
1581index_error Exception raised by index() if substr not
1582 found.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001583
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001584 Some string functions
1585 Function Result
1586expandtabs(s, returns a copy of string <s> with tabs expanded.
1587tabSize)
1588find/rfind(s, sub Return the lowest/highest index in <s> where the substring
1589[, start=0[, end= <sub> is found such that <sub> is wholly contained ins
15900]) [start:end]. Return -1 if <sub> not found.
1591ljust/rjust/center Return a copy of string <s> left/right justified/centerd in
1592(s, width) afield of given width, padded with spaces. <s> is
1593 nevertruncated.
1594lower/upper(s) Return a string that is (a copy of) <s> in lowercase/
1595 uppercase
1596split(s[, sep= Return a list containing the words of the string <s>,using
1597whitespace[, the string <sep> as a separator.
1598maxsplit=0]])
1599join(words[, sep=' Concatenate a list or tuple of words with
1600']) interveningseparators; inverse of split.
Fred Drakedb390c12005-10-28 14:39:47 +00001601replace(s, old, Returns a copy of string <s> with all occurrences of
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001602new[, maxsplit=0] substring<old> replaced by <new>. Limits to <maxsplit>
1603 firstsubstitutions if specified.
1604strip(s) Return a string that is (a copy of) <s> without leadingand
1605 trailing whitespace. see also lstrip, rstrip.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001606
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001607
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001608
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001609 re (sre)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001610
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001611Handles Unicode strings. Implemented in new module sre, re now a mere front-end
1612for compatibility.
1613Patterns are specified as strings. Tip: Use raw strings (e.g. r'\w*') to
1614litteralize backslashes.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001615
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001616
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001617 Regular expression syntax
1618 Form Description
1619. matches any character (including newline if DOTALL flag specified)
1620^ matches start of the string (of every line in MULTILINE mode)
1621$ matches end of the string (of every line in MULTILINE mode)
1622* 0 or more of preceding regular expression (as many as possible)
1623+ 1 or more of preceding regular expression (as many as possible)
Fred Drakedb390c12005-10-28 14:39:47 +00001624? 0 or 1 occurrence of preceding regular expression
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001625*?, +?, ?? Same as *, + and ? but matches as few characters as possible
1626{m,n} matches from m to n repetitions of preceding RE
1627{m,n}? idem, attempting to match as few repetitions as possible
1628[ ] defines character set: e.g. '[a-zA-Z]' to match all letters(see also
1629 \w \S)
1630[^ ] defines complemented character set: matches if char is NOT in set
1631 escapes special chars '*?+&$|()' and introduces special sequences
1632\ (see below). Due to Python string rules, write as '\\' orr'\' in the
1633 pattern string.
1634\\ matches a litteral '\'; due to Python string rules, write as '\\\\
1635 'in pattern string, or better using raw string: r'\\'.
1636| specifies alternative: 'foo|bar' matches 'foo' or 'bar'
1637(...) matches any RE inside (), and delimits a group.
1638(?:...) idem but doesn't delimit a group.
1639 matches if ... matches next, but doesn't consume any of the string
1640(?=...) e.g. 'Isaac (?=Asimov)' matches 'Isaac' only if followed by
1641 'Asimov'.
1642(?!...) matches if ... doesn't match next. Negative of (?=...)
1643(?P<name matches any RE inside (), and delimits a named group. (e.g. r'(?P
1644>...) <id>[a-zA-Z_]\w*)' defines a group named id)
1645(?P=name) matches whatever text was matched by the earlier group named name.
1646(?#...) A comment; ignored.
1647(?letter) letter is one of 'i','L', 'm', 's', 'x'. Set the corresponding flags
1648 (re.I, re.L, re.M, re.S, re.X) for the entire RE.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001649
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001650 Special sequences
1651Sequence Description
1652number matches content of the group of the same number; groups are numbered
1653 starting from 1
1654\A matches only at the start of the string
1655\b empty str at beg or end of word: '\bis\b' matches 'is', but not 'his'
1656\B empty str NOT at beginning or end of word
1657\d any decimal digit (<=> [0-9])
1658\D any non-decimal digit char (<=> [^O-9])
1659\s any whitespace char (<=> [ \t\n\r\f\v])
1660\S any non-whitespace char (<=> [^ \t\n\r\f\v])
1661\w any alphaNumeric char (depends on LOCALE flag)
1662\W any non-alphaNumeric char (depends on LOCALE flag)
1663\Z matches only at the end of the string
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001664
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001665 Variables
1666Variable Meaning
1667error Exception when pattern string isn't a valid regexp.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001668
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001669 Functions
1670 Function Result
1671 Compile a RE pattern string into a regular expression object.
1672 Flags (combinable by |):
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001673
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001674 I or IGNORECASE or (?i)
1675 case insensitive matching
1676compile( L or LOCALE or (?L)
1677pattern[, make \w, \W, \b, \B dependent on thecurrent locale
1678flags=0]) M or MULTILINE or (?m)
1679 matches every new line and not onlystart/end of the whole
1680 string
1681 S or DOTALL or (?s)
1682 '.' matches ALL chars, including newline
1683 X or VERBOSE or (?x)
1684 Ignores whitespace outside character sets
1685escape(string) return (a copy of) string with all non-alphanumerics
1686 backslashed.
1687match(pattern, if 0 or more chars at beginning of <string> match the RE pattern
1688string[, flags string,return a corresponding MatchObject instance, or None if
1689]) no match.
1690search(pattern scan thru <string> for a location matching <pattern>, return
1691, string[, acorresponding MatchObject instance, or None if no match.
1692flags])
1693split(pattern, split <string> by occurrences of <pattern>. If capturing () are
1694string[, used inpattern, then occurrences of patterns or subpatterns are
1695maxsplit=0]) also returned.
1696findall( return a list of non-overlapping matches in <pattern>, either a
1697pattern, list ofgroups or a list of tuples if the pattern has more than 1
1698string) group.
1699 return string obtained by replacing the (<count> first) lefmost
1700sub(pattern, non-overlapping occurrences of <pattern> (a string or a RE
1701repl, string[, object) in <string>by <repl>; <repl> can be a string or a fct
1702count=0]) called with a single MatchObj arg, which must return the
1703 replacement string.
1704subn(pattern,
1705repl, string[, same as sub(), but returns a tuple (newString, numberOfSubsMade)
1706count=0])
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001707
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001708Regular Expression Objects
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001709
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001710
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001711(RE objects are returned by the compile fct)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001712
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001713 re object attributes
1714Attribute Descrition
1715flags flags arg used when RE obj was compiled, or 0 if none provided
1716groupindex dictionary of {group name: group number} in pattern
1717pattern pattern string from which RE obj was compiled
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001718
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001719 re object methods
1720 Method Result
1721 If zero or more characters at the beginning of string match this
1722 regular expression, return a corresponding MatchObject instance.
1723 Return None if the string does not match the pattern; note that
1724 this is different from a zero-length match.
1725 The optional second parameter pos gives an index in the string
1726match( where the search is to start; it defaults to 0. This is not
1727string[, completely equivalent to slicing the string; the '' pattern
1728pos][, character matches at the real beginning of the string and at
1729endpos]) positions just after a newline, but not necessarily at the index
1730 where the search is to start.
1731 The optional parameter endpos limits how far the string will be
1732 searched; it will be as if the string is endpos characters long, so
1733 only the characters from pos to endpos will be searched for a
1734 match.
1735 Scan through string looking for a location where this regular
1736search( expression produces a match, and return a corresponding MatchObject
1737string[, instance. Return None if no position in the string matches the
1738pos][, pattern; note that this is different from finding a zero-length
1739endpos]) match at some point in the string.
1740 The optional pos and endpos parameters have the same meaning as for
1741 the match() method.
1742split(
1743string[, Identical to the split() function, using the compiled pattern.
1744maxsplit=
17450])
1746findall( Identical to the findall() function, using the compiled pattern.
1747string)
1748sub(repl,
1749string[, Identical to the sub() function, using the compiled pattern.
1750count=0])
1751subn(repl,
1752string[, Identical to the subn() function, using the compiled pattern.
1753count=0])
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001754
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001755Match Objects
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001756
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001757
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001758(Match objects are returned by the match & search functions)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001759
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001760 Match object attributes
1761Attribute Description
1762pos value of pos passed to search or match functions; index intostring at
1763 which RE engine started search.
1764endpos value of endpos passed to search or match functions; index intostring
1765 beyond which RE engine won't go.
1766re RE object whose match or search fct produced this MatchObj instance
1767string string passed to match() or search()
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001768
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001769 Match object functions
1770Function Result
1771 returns one or more groups of the match. If one arg, result is a
1772group([g1 string;if multiple args, result is a tuple with one item per arg. If
1773, g2, gi is 0,return value is entire matching string; if 1 <= gi <= 99,
1774...]) returnstring matching group #gi (or None if no such group); gi may
1775 also bea group name.
1776 returns a tuple of all groups of the match; groups not
1777groups() participatingto the match have a value of None. Returns a string
1778 instead of tupleif len(tuple)=1
1779start(
1780group), returns indices of start & end of substring matched by group (or
1781end(group Noneif group exists but doesn't contribute to the match)
1782)
1783span( returns the 2-tuple (start(group), end(group)); can be (None, None)if
1784group) group didn't contibute to the match.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001785
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001786
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001787
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001788 math
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001789
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001790Variables:
1791pi
1792e
1793Functions (see ordinary C man pages for info):
1794acos(x)
1795asin(x)
1796atan(x)
1797atan2(x, y)
1798ceil(x)
1799cos(x)
1800cosh(x)
Raymond Hettingere685f942003-01-26 03:29:15 +00001801degrees(x)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001802exp(x)
1803fabs(x)
1804floor(x)
1805fmod(x, y)
1806frexp(x) -- Unlike C: (float, int) = frexp(float)
1807ldexp(x, y)
Raymond Hettingere685f942003-01-26 03:29:15 +00001808log(x [,base])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001809log10(x)
1810modf(x) -- Unlike C: (float, float) = modf(float)
1811pow(x, y)
Raymond Hettingere685f942003-01-26 03:29:15 +00001812radians(x)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001813sin(x)
1814sinh(x)
1815sqrt(x)
1816tan(x)
1817tanh(x)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001818
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001819 getopt
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001820
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001821Functions:
1822getopt(list, optstr) -- Similar to C. <optstr> is option
1823 letters to look for. Put ':' after letter
1824 if option takes arg. E.g.
1825 # invocation was "python test.py -c hi -a arg1 arg2"
1826 opts, args = getopt.getopt(sys.argv[1:], 'ab:c:')
1827 # opts would be
1828 [('-c', 'hi'), ('-a', '')]
1829 # args would be
1830 ['arg1', 'arg2']
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001831
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001832
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001833List of modules and packages in base distribution
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001834
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001835(built-ins and content of python Lib directory)
1836(Python NT distribution, may be slightly different in other distributions)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001837
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001838 Standard library modules
1839 Operation Result
1840aifc Stuff to parse AIFF-C and AIFF files.
1841anydbm Generic interface to all dbm clones. (dbhash, gdbm,
1842 dbm,dumbdbm)
1843asynchat Support for 'chat' style protocols
1844asyncore Asynchronous File I/O (in select style)
1845atexit Register functions to be called at exit of Python interpreter.
1846audiodev Audio support for a few platforms.
1847base64 Conversions to/from base64 RFC-MIME transport encoding .
1848BaseHTTPServer Base class forhttp services.
1849Bastion "Bastionification" utility (control access to instance vars)
1850bdb A generic Python debugger base class.
1851binhex Macintosh binhex compression/decompression.
1852bisect List bisection algorithms.
Raymond Hettingere685f942003-01-26 03:29:15 +00001853bz2 Support for bz2 compression/decompression.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001854calendar Calendar printing functions.
1855cgi Wraps the WWW Forms Common Gateway Interface (CGI).
Raymond Hettingere685f942003-01-26 03:29:15 +00001856cgitb Utility for handling CGI tracebacks.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001857CGIHTTPServer CGI http services.
1858cmd A generic class to build line-oriented command interpreters.
Raymond Hettingere685f942003-01-26 03:29:15 +00001859datetime Basic date and time types.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001860code Utilities needed to emulate Python's interactive interpreter
1861codecs Lookup existing Unicode encodings and register new ones.
1862colorsys Conversion functions between RGB and other color systems.
1863commands Tools for executing UNIX commands .
1864compileall Force "compilation" of all .py files in a directory.
Georg Brandl392c6fc2008-05-25 07:25:25 +00001865ConfigParser Configuration file parser (much like windows .ini files)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001866copy Generic shallow and deep copying operations.
Georg Brandldffbf5f2008-05-20 07:49:57 +00001867copy_reg Helper to provide extensibility for pickle/cPickle.
Raymond Hettingerca60cac2003-07-12 23:55:57 +00001868csv Read and write files with comma separated values.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001869dbhash (g)dbm-compatible interface to bsdhash.hashopen.
1870dircache Sorted list of files in a dir, using a cache.
1871[DEL:dircmp:DEL] [DEL:Defines a class to build directory diff tools on.:DEL]
Raymond Hettingere685f942003-01-26 03:29:15 +00001872difflib Tool for creating delta between sequences.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001873dis Bytecode disassembler.
1874distutils Package installation system.
Raymond Hettingere685f942003-01-26 03:29:15 +00001875doctest Tool for running and verifying tests inside doc strings.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001876dospath Common operations on DOS pathnames.
1877dumbdbm A dumb and slow but simple dbm clone.
1878[DEL:dump:DEL] [DEL:Print python code that reconstructs a variable.:DEL]
Raymond Hettingere685f942003-01-26 03:29:15 +00001879email Comprehensive support for internet email.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001880exceptions Class based built-in exception hierarchy.
1881filecmp File comparison.
1882fileinput Helper class to quickly write a loop over all standard input
1883 files.
1884[DEL:find:DEL] [DEL:Find files directory hierarchy matching a pattern.:DEL]
1885fnmatch Filename matching with shell patterns.
1886formatter A test formatter.
1887fpformat General floating point formatting functions.
1888ftplib An FTP client class. Based on RFC 959.
1889gc Perform garbacge collection, obtain GC debug stats, and tune
1890 GC parameters.
1891getopt Standard command line processing. See also ftp://
1892 www.pauahtun.org/pub/getargspy.zip
1893getpass Utilities to get a password and/or the current user name.
1894glob filename globbing.
1895gopherlib Gopher protocol client interface.
1896[DEL:grep:DEL] [DEL:'grep' utilities.:DEL]
1897gzip Read & write gzipped files.
Raymond Hettingere685f942003-01-26 03:29:15 +00001898heapq Priority queue implemented using lists organized as heaps.
1899HMAC Keyed-Hashing for Message Authentication -- RFC 2104.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001900htmlentitydefs Proposed entity definitions for HTML.
1901htmllib HTML parsing utilities.
Raymond Hettingere685f942003-01-26 03:29:15 +00001902HTMLParser A parser for HTML and XHTML.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001903httplib HTTP client class.
1904ihooks Hooks into the "import" mechanism.
1905imaplib IMAP4 client.Based on RFC 2060.
1906imghdr Recognizing image files based on their first few bytes.
1907imputil Privides a way of writing customised import hooks.
Raymond Hettingere685f942003-01-26 03:29:15 +00001908inspect Tool for probing live Python objects.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001909keyword List of Python keywords.
1910knee A Python re-implementation of hierarchical module import.
1911linecache Cache lines from files.
1912linuxaudiodev Lunix /dev/audio support.
1913locale Support for number formatting using the current locale
1914 settings.
Raymond Hettingere685f942003-01-26 03:29:15 +00001915logging Python logging facility.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001916macpath Pathname (or related) operations for the Macintosh.
1917macurl2path Mac specific module for conversion between pathnames and URLs.
1918mailbox A class to handle a unix-style or mmdf-style mailbox.
1919mailcap Mailcap file handling (RFC 1524).
1920mhlib MH (mailbox) interface.
1921mimetools Various tools used by MIME-reading or MIME-writing programs.
1922mimetypes Guess the MIME type of a file.
1923MimeWriter Generic MIME writer.
1924mimify Mimification and unmimification of mail messages.
1925mmap Interface to memory-mapped files - they behave like mutable
1926 strings./font>
1927multifile Class to make multi-file messages easier to handle.
1928mutex Mutual exclusion -- for use with module sched.
1929netrc
1930nntplib An NNTP client class. Based on RFC 977.
1931ntpath Common operations on DOS pathnames.
1932nturl2path Mac specific module for conversion between pathnames and URLs.
Raymond Hettingere685f942003-01-26 03:29:15 +00001933optparse A comprehensive tool for processing command line options.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001934os Either mac, dos or posix depending system.
1935[DEL:packmail: [DEL:Create a self-unpacking shell archive.:DEL]
1936DEL]
1937pdb A Python debugger.
1938pickle Pickling (save and restore) of Python objects (a faster
1939 Cimplementation exists in built-in module: cPickle).
1940pipes Conversion pipeline templates.
Raymond Hettingere685f942003-01-26 03:29:15 +00001941pkgunil Utilities for working with Python packages.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001942popen2 variations on pipe open.
1943poplib A POP3 client class. Based on the J. Myers POP3 draft.
1944posixfile Extended (posix) file operations.
1945posixpath Common operations on POSIX pathnames.
1946pprint Support to pretty-print lists, tuples, & dictionaries
1947 recursively.
1948profile Class for profiling python code.
1949pstats Class for printing reports on profiled python code.
Raymond Hettingere685f942003-01-26 03:29:15 +00001950pydoc Utility for generating documentation from source files.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001951pty Pseudo terminal utilities.
1952pyexpat Interface to the Expay XML parser.
1953py_compile Routine to "compile" a .py file to a .pyc file.
1954pyclbr Parse a Python file and retrieve classes and methods.
Georg Brandla6168f92008-05-25 07:20:14 +00001955Queue A multi-producer, multi-consumer queue.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001956quopri Conversions to/from quoted-printable transport encoding.
1957rand Don't use unless you want compatibility with C's rand().
Raymond Hettinger5a772d32003-01-25 22:35:42 +00001958random Random variable generators
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001959re Regular Expressions.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001960repr Redo repr() but with limits on most sizes.
1961rexec Restricted execution facilities ("safe" exec, eval, etc).
1962rfc822 RFC-822 message manipulation class.
1963rlcompleter Word completion for GNU readline 2.0.
Raymond Hettinger2d95f1a2004-03-13 20:27:23 +00001964robotparser Parse robots.txt files, useful for web spiders.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001965sched A generally useful event scheduler class.
Raymond Hettingere685f942003-01-26 03:29:15 +00001966sets Module for a set datatype.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001967sgmllib A parser for SGML.
1968shelve Manage shelves of pickled objects.
1969shlex Lexical analyzer class for simple shell-like syntaxes.
1970shutil Utility functions usable in a shell-like program.
1971SimpleHTTPServer Simple extension to base http class
1972site Append module search paths for third-party packages to
1973 sys.path.
1974smtplib SMTP Client class (RFC 821)
1975sndhdr Several routines that help recognizing sound.
Georg Brandle152a772008-05-24 18:31:28 +00001976SocketServer Generic socket server classes.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001977stat Constants and functions for interpreting stat/lstat struct.
1978statcache Maintain a cache of file stats.
1979statvfs Constants for interpreting statvfs struct as returned by
1980 os.statvfs()and os.fstatvfs() (if they exist).
1981string A collection of string operations.
1982StringIO File-like objects that read/write a string buffer (a fasterC
1983 implementation exists in built-in module: cStringIO).
1984sunau Stuff to parse Sun and NeXT audio files.
1985sunaudio Interpret sun audio headers.
1986symbol Non-terminal symbols of Python grammar (from "graminit.h").
1987tabnanny,/font> Check Python source for ambiguous indentation.
Raymond Hettingere685f942003-01-26 03:29:15 +00001988tarfile Facility for reading and writing to the *nix tarfile format.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001989telnetlib TELNET client class. Based on RFC 854.
1990tempfile Temporary file name allocation.
Raymond Hettingere685f942003-01-26 03:29:15 +00001991textwrap Object for wrapping and filling text.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001992threading Proposed new higher-level threading interfaces
1993threading_api (doc of the threading module)
1994toaiff Convert "arbitrary" sound files to AIFF files .
1995token Tokens (from "token.h").
1996tokenize Compiles a regular expression that recognizes Python tokens.
1997traceback Format and print Python stack traces.
1998tty Terminal utilities.
1999turtle LogoMation-like turtle graphics
2000types Define names for all type symbols in the std interpreter.
2001tzparse Parse a timezone specification.
2002unicodedata Interface to unicode properties.
2003urllib Open an arbitrary URL.
2004urlparse Parse URLs according to latest draft of standard.
2005user Hook to allow user-specified customization code to run.
2006UserDict A wrapper to allow subclassing of built-in dict class.
2007UserList A wrapper to allow subclassing of built-in list class.
2008UserString A wrapper to allow subclassing of built-in string class.
2009[DEL:util:DEL] [DEL:some useful functions that don't fit elsewhere !!:DEL]
2010uu UUencode/UUdecode.
Raymond Hettingere685f942003-01-26 03:29:15 +00002011unittest Utilities for implementing unit testing.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002012wave Stuff to parse WAVE files.
Raymond Hettingere685f942003-01-26 03:29:15 +00002013weakref Tools for creating and managing weakly referenced objects.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002014webbrowser Platform independent URL launcher.
2015[DEL:whatsound: [DEL:Several routines that help recognizing sound files.:DEL]
2016DEL]
2017whichdb Guess which db package to use to open a db file.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002018xdrlib Implements (a subset of) Sun XDR (eXternal Data
2019 Representation)
2020xmllib A parser for XML, using the derived class as static DTD.
2021xml.dom Classes for processing XML using the Document Object Model.
2022xml.sax Classes for processing XML using the SAX API.
Raymond Hettingere685f942003-01-26 03:29:15 +00002023xmlrpclib Support for remote procedure calls using XML.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002024zipfile Read & write PK zipped files.
2025[DEL:zmod:DEL] [DEL:Demonstration of abstruse mathematical concepts.:DEL]
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002026
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002027
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002028
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002029* Built-ins *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002030
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002031 sys Interpreter state vars and functions
2032 __built-in__ Access to all built-in python identifiers
2033 __main__ Scope of the interpreters main program, script or stdin
2034 array Obj efficiently representing arrays of basic values
2035 math Math functions of C standard
Raymond Hettingere685f942003-01-26 03:29:15 +00002036 time Time-related functions (also the newer datetime module)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002037 marshal Read and write some python values in binary format
2038 struct Convert between python values and C structs
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002039
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002040* Standard *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002041
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002042 getopt Parse cmd line args in sys.argv. A la UNIX 'getopt'.
2043 os A more portable interface to OS dependent functionality
2044 re Functions useful for working with regular expressions
2045 string Useful string and characters functions and exceptions
Raymond Hettingere685f942003-01-26 03:29:15 +00002046 random Mersenne Twister pseudo-random number generator
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002047 thread Low-level primitives for working with process threads
2048 threading idem, new recommanded interface.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002049
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002050* Unix/Posix *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002051
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002052 dbm Interface to Unix ndbm database library
2053 grp Interface to Unix group database
2054 posix OS functionality standardized by C and POSIX standards
2055 posixpath POSIX pathname functions
2056 pwd Access to the Unix password database
2057 select Access to Unix select multiplex file synchronization
2058 socket Access to BSD socket interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002059
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002060* Tk User-interface Toolkit *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002061
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002062 tkinter Main interface to Tk
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002063
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002064* Multimedia *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002065
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002066 audioop Useful operations on sound fragments
2067 imageop Useful operations on images
2068 jpeg Access to jpeg image compressor and decompressor
2069 rgbimg Access SGI imglib image files
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002070
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002071* Cryptographic Extensions *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002072
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002073 md5 Interface to RSA's MD5 message digest algorithm
Andrew M. Kuchling5a9618e2004-08-31 13:43:19 +00002074 sha Interface to the SHA message digest algorithm
Raymond Hettingere685f942003-01-26 03:29:15 +00002075 HMAC Keyed-Hashing for Message Authentication -- RFC 2104.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002076
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002077* SGI IRIX * (4 & 5)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002078
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002079 al SGI audio facilities
2080 AL al constants
2081 fl Interface to FORMS library
2082 FL fl constants
2083 flp Functions for form designer
2084 fm Access to font manager library
2085 gl Access to graphics library
2086 GL Constants for gl
2087 DEVICE More constants for gl
2088 imgfile Imglib image file interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002089
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002090* Suns *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002091
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002092 sunaudiodev Access to sun audio interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002093
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002094
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002095Workspace exploration and idiom hints
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002096
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002097 dir(<module>) list functions, variables in <module>
2098 dir() get object keys, defaults to local name space
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002099 if __name__ == '__main__': main() invoke main if running as script
2100 map(None, lst1, lst2, ...) merge lists
2101 b = a[:] create copy of seq structure
2102 _ in interactive mode, is last value printed
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
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002108
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002109
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002110Python Mode for Emacs
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002111
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002112(Not revised, possibly not up to date)
2113Type C-c ? when in python-mode for extensive help.
2114INDENTATION
2115Primarily for entering new code:
2116 TAB indent line appropriately
2117 LFD insert newline, then indent
2118 DEL reduce indentation, or delete single character
2119Primarily for reindenting existing code:
2120 C-c : guess py-indent-offset from file content; change locally
2121 C-u C-c : ditto, but change globally
2122 C-c TAB reindent region to match its context
2123 C-c < shift region left by py-indent-offset
2124 C-c > shift region right by py-indent-offset
2125MARKING & MANIPULATING REGIONS OF CODE
2126C-c C-b mark block of lines
2127M-C-h mark smallest enclosing def
2128C-u M-C-h mark smallest enclosing class
2129C-c # comment out region of code
2130C-u C-c # uncomment region of code
2131MOVING POINT
2132C-c C-p move to statement preceding point
2133C-c C-n move to statement following point
2134C-c C-u move up to start of current block
2135M-C-a move to start of def
2136C-u M-C-a move to start of class
2137M-C-e move to end of def
2138C-u M-C-e move to end of class
2139EXECUTING PYTHON CODE
2140C-c C-c sends the entire buffer to the Python interpreter
2141C-c | sends the current region
2142C-c ! starts a Python interpreter window; this will be used by
2143 subsequent C-c C-c or C-c | commands
Raymond Hettingere685f942003-01-26 03:29:15 +00002144C-c C-w runs PyChecker
2145
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002146VARIABLES
2147py-indent-offset indentation increment
2148py-block-comment-prefix comment string used by py-comment-region
2149py-python-command shell command to invoke Python interpreter
2150py-scroll-process-buffer t means always scroll Python process buffer
2151py-temp-directory directory used for temp files (if needed)
2152py-beep-if-tab-change ring the bell if tab-width is changed
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002153
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002154
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002155The Python Debugger
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002156
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002157(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 +00002158
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002159Accessing
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002160
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002161import pdb (it's a module written in Python)
2162 -- defines functions :
2163 run(statement[,globals[, locals]])
2164 -- execute statement string under debugger control, with optional
2165 global & local environment.
2166 runeval(expression[,globals[, locals]])
2167 -- same as run, but evaluate expression and return value.
2168 runcall(function[, argument, ...])
2169 -- run function object with given arg(s)
2170 pm() -- run postmortem on last exception (like debugging a core file)
2171 post_mortem(t)
2172 -- run postmortem on traceback object <t>
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002173
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002174 -- defines class Pdb :
2175 use Pdb to create reusable debugger objects. Object
2176 preserves state (i.e. break points) between calls.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002177
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002178 runs until a breakpoint hit, exception, or end of program
2179 If exception, variable '__exception__' holds (exception,value).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002180
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002181Commands
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002182
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002183h, help
2184 brief reminder of commands
2185b, break [<arg>]
2186 if <arg> numeric, break at line <arg> in current file
2187 if <arg> is function object, break on entry to fcn <arg>
2188 if no arg, list breakpoints
2189cl, clear [<arg>]
2190 if <arg> numeric, clear breakpoint at <arg> in current file
2191 if no arg, clear all breakpoints after confirmation
2192w, where
2193 print current call stack
2194u, up
2195 move up one stack frame (to top-level caller)
2196d, down
2197 move down one stack frame
2198s, step
2199 advance one line in the program, stepping into calls
2200n, next
2201 advance one line, stepping over calls
2202r, return
2203 continue execution until current function returns
2204 (return value is saved in variable "__return__", which
2205 can be printed or manipulated from debugger)
2206c, continue
2207 continue until next breakpoint
Raymond Hettingere685f942003-01-26 03:29:15 +00002208j, jump lineno
2209 Set the next line that will be executed
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002210a, args
2211 print args to current function
2212rv, retval
2213 prints return value from last function that returned
2214p, print <arg>
2215 prints value of <arg> in current stack frame
2216l, list [<first> [, <last>]]
2217 List source code for the current file.
2218 Without arguments, list 11 lines around the current line
2219 or continue the previous listing.
2220 With one argument, list 11 lines starting at that line.
2221 With two arguments, list the given range;
2222 if the second argument is less than the first, it is a count.
2223whatis <arg>
2224 prints type of <arg>
2225!
2226 executes rest of line as a Python statement in the current stack frame
2227q quit
2228 immediately stop execution and leave debugger
2229<return>
2230 executes last command again
2231Any input debugger doesn't recognize as a command is assumed to be a
2232Python statement to execute in the current stack frame, the same way
2233the exclamation mark ("!") command does.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002234
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002235Example
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002236
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002237(1394) python
2238Python 1.0.3 (Sep 26 1994)
2239Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
2240>>> import rm
2241>>> rm.run()
2242Traceback (innermost last):
2243 File "<stdin>", line 1
2244 File "./rm.py", line 7
2245 x = div(3)
2246 File "./rm.py", line 2
2247 return a / r
2248ZeroDivisionError: integer division or modulo
2249>>> import pdb
2250>>> pdb.pm()
2251> ./rm.py(2)div: return a / r
2252(Pdb) list
2253 1 def div(a):
2254 2 -> return a / r
2255 3
2256 4 def run():
2257 5 global r
2258 6 r = 0
2259 7 x = div(3)
2260 8 print x
2261[EOF]
2262(Pdb) print r
22630
2264(Pdb) q
2265>>> pdb.runcall(rm.run)
2266etc.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002267
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002268Quirks
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002269
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002270Breakpoints are stored as filename, line number tuples. If a module is reloaded
2271after editing, any remembered breakpoints are likely to be wrong.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002272
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002273Always single-steps through top-most stack frame. That is, "c" acts like "n".