blob: e9a2639e7991311d1bf94daac7712d9b5cce1df2 [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
Guido van Rossume7ba4952007-06-06 23:52:48 +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!
55-c Specify the command to execute (see next section). This terminates the
56command option list (following options are passed as arguments to the command).
57 the name of a python file (.py) to execute read from stdin.
58script Anything afterward is passed as options to python script or command,
59 not interpreted as an option to interpreter itself.
60args passed to script or command (in sys.argv[1:])
61 If no script or command, Python enters interactive mode.
62
63 * Available IDEs in std distrib: IDLE (tkinter based, portable), Pythonwin
64 (Windows).
65
66
67
68Environment variables
69
70 Environment variables
71 Variable Effect
72PYTHONHOME Alternate prefix directory (or prefix;exec_prefix). The
73 default module search path uses prefix/lib
74 Augments the default search path for module files. The format
75 is the same as the shell's $PATH: one or more directory
76 pathnames separated by ':' or ';' without spaces around
77 (semi-)colons!
78PYTHONPATH On Windows first search for Registry key HKEY_LOCAL_MACHINE\
79 Software\Python\PythonCore\x.y\PythonPath (default value). You
80 may also define a key named after your application with a
81 default string value giving the root directory path of your
82 app.
83 If this is the name of a readable file, the Python commands in
84PYTHONSTARTUP that file are executed before the first prompt is displayed in
85 interactive mode (no default).
86PYTHONDEBUG If non-empty, same as -d option
87PYTHONINSPECT If non-empty, same as -i option
88PYTHONSUPPRESS If non-empty, same as -s option
89PYTHONUNBUFFERED If non-empty, same as -u option
90PYTHONVERBOSE If non-empty, same as -v option
91PYTHONCASEOK If non-empty, ignore case in file/module names (imports)
92
93
94
95
96Notable lexical entities
97
98Keywords
99
100 and del for is raise
101 assert elif from lambda return
102 break else global not try
103 class except if or while
Raymond Hettinger72348842003-01-25 21:22:52 +0000104 continue exec import pass yield
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000105 def finally in print
106
107 * (list of keywords in std module: keyword)
108 * Illegitimate Tokens (only valid in strings): @ $ ?
109 * A statement must all be on a single line. To break a statement over
110 multiple lines use "\", as with the C preprocessor.
111 Exception: can always break when inside any (), [], or {} pair, or in
112 triple-quoted strings.
113 * More than one statement can appear on a line if they are separated with
114 semicolons (";").
115 * Comments start with "#" and continue to end of line.
116
117Identifiers
118
119 (letter | "_") (letter | digit | "_")*
120
121 * Python identifiers keywords, attributes, etc. are case-sensitive.
122 * Special forms: _ident (not imported by 'from module import *'); __ident__
123 (system defined name);
124 __ident (class-private name mangling)
125
126Strings
127
128 "a string enclosed by double quotes"
129 'another string delimited by single quotes and with a " inside'
130 '''a string containing embedded newlines and quote (') marks, can be
131 delimited with triple quotes.'''
132 """ may also use 3- double quotes as delimiters """
133 u'a unicode string' U"Another unicode string"
134 r'a raw string where \ are kept (literalized): handy for regular
135 expressions and windows paths!'
136 R"another raw string" -- raw strings cannot end with a \
137 ur'a unicode raw string' UR"another raw unicode"
138
139 Use \ at end of line to continue a string on next line.
140 adjacent strings are concatened, e.g. 'Monty' ' Python' is the same as
141 'Monty Python'.
142 u'hello' + ' world' --> u'hello world' (coerced to unicode)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000143
144 String Literal Escapes
145
146 \newline Ignored (escape newline)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000147 \\ Backslash (\) \e Escape (ESC) \v Vertical Tab (VT)
148 \' Single quote (') \f Formfeed (FF) \OOO char with octal value OOO
149 \" Double quote (") \n Linefeed (LF)
150 \a Bell (BEL) \r Carriage Return (CR) \xHH char with hex value HH
151 \b Backspace (BS) \t Horizontal Tab (TAB)
152 \uHHHH unicode char with hex value HHHH, can only be used in unicode string
153 \UHHHHHHHH unicode char with hex value HHHHHHHH, can only be used in unicode string
154 \AnyOtherChar is left as-is
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000155
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000156 * NUL byte (\000) is NOT an end-of-string marker; NULs may be embedded in
157 strings.
158 * Strings (and tuples) are immutable: they cannot be modified.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000159
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000160Numbers
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000161
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000162 Decimal integer: 1234, 1234567890546378940L (or l)
Raymond Hettinger72348842003-01-25 21:22:52 +0000163 Octal integer: 0177, 0177777777777777777 (begin with a 0)
164 Hex integer: 0xFF, 0XFFFFffffFFFFFFFFFF (begin with 0x or 0X)
165 Long integer (unlimited precision): 1234567890123456
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000166 Float (double precision): 3.14e-10, .001, 10., 1E3
167 Complex: 1J, 2+3J, 4+5j (ends with J or j, + separates (float) real and
168 imaginary parts)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000169
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000170Sequences
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000171
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000172 * String of length 0, 1, 2 (see above)
173 '', '1', "12", 'hello\n'
174 * Tuple of length 0, 1, 2, etc:
175 () (1,) (1,2) # parentheses are optional if len > 0
176 * List of length 0, 1, 2, etc:
177 [] [1] [1,2]
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000178
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000179Indexing is 0-based. Negative indices (usually) mean count backwards from end
180of sequence.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000181
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000182Sequence slicing [starting-at-index : but-less-than-index]. Start defaults to
183'0'; End defaults to 'sequence-length'.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000184
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000185a = (0,1,2,3,4,5,6,7)
186 a[3] ==> 3
187 a[-1] ==> 7
188 a[2:4] ==> (2, 3)
189 a[1:] ==> (1, 2, 3, 4, 5, 6, 7)
190 a[:3] ==> (0, 1, 2)
191 a[:] ==> (0,1,2,3,4,5,6,7) # makes a copy of the sequence.
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000192
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000193Dictionaries (Mappings)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000194
Raymond Hettinger72348842003-01-25 21:22:52 +0000195 {} # Zero length empty dictionary
196 {1 : 'first'} # Dictionary with one (key, value) pair
197 {1 : 'first', 'next': 'second'}
198 dict([('one',1),('two',2)]) # Construct a dict from an item list
199 dict('one'=1, 'two'=2) # Construct a dict using keyword args
200 dict.fromkeys(['one', 'keys']) # Construct a dict from a sequence
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000201
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000202Operators and their evaluation order
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000203
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000204 Operators and their evaluation order
205Highest Operator Comment
206 (...) [...] {...} `...` Tuple, list & dict. creation; string
207 conv.
208 s[i] s[i:j] s.attr f(...) indexing & slicing; attributes, fct
209 calls
210 +x, -x, ~x Unary operators
211 x**y Power
Raymond Hettingere685f942003-01-26 03:29:15 +0000212 x*y x/y x%y x//y mult, division, modulo, floor division
Georg Brandlf33d01d2005-08-22 19:35:18 +0000213 x+y x-y addition, subtraction
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000214 x<<y x>>y Bit shifting
215 x&y Bitwise and
216 x^y Bitwise exclusive or
217 x|y Bitwise or
218 x<y x<=y x>y x>=y x==y x!=y Comparison,
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000219 x is y x is not y membership
220 x in s x not in s
221 not x boolean negation
222 x and y boolean and
223 x or y boolean or
224Lowest lambda args: expr anonymous function
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000225
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000226Alternate names are defined in module operator (e.g. __add__ and add for +)
Raymond Hettinger72348842003-01-25 21:22:52 +0000227Most operators are overridable.
228
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000229Many binary operators also support augmented assignment:
Raymond Hettinger72348842003-01-25 21:22:52 +0000230 x += 1 # Same as x = x + 1
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000231
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000232
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000233Basic Types and Their Operations
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000234
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000235Comparisons (defined between *any* types)
Guido van Rossumc8180cc1994-08-05 15:57:31 +0000236
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000237 Comparisons
238Comparison Meaning Notes
239< strictly less than (1)
240<= less than or equal to
241> strictly greater than
242>= greater than or equal to
243== equal to
Neal Norwitz3bd844e2006-08-29 04:39:12 +0000244!= not equal to
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000245is object identity (2)
246is not negated object identity (2)
247
248Notes :
249 Comparison behavior can be overridden for a given class by defining special
250method __cmp__.
Andrew M. Kuchling55be9ea2004-09-10 12:59:54 +0000251 The above comparisons return True or False which are of type bool
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000252(a subclass of int) and behave exactly as 1 or 0 except for their type and
Raymond Hettinger72348842003-01-25 21:22:52 +0000253that they print as True or False instead of 1 or 0.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000254 (1) X < Y < Z < W has expected meaning, unlike C
255 (2) Compare object identities (i.e. id(object)), not object values.
256
257Boolean values and operators
258
259 Boolean values and operators
260 Value or Operator Returns Notes
261None, numeric zeros, empty sequences and False
262mappings
263all other values True
264not x True if x is False, else
265 True
266x or y if x is False then y, else (1)
267 x
268x and y if x is False then x, else (1)
269 y
270
271Notes :
272 Truth testing behavior can be overridden for a given class by defining
Jack Diederich62971282006-11-30 20:50:23 +0000273special method __bool__.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000274 (1) Evaluate second arg only if necessary to determine outcome.
275
276None
277
278 None is used as default return value on functions. Built-in single object
279 with type NoneType.
280 Input that evaluates to None does not print when running Python
281 interactively.
282
283Numeric types
284
Neal Norwitz01688022007-08-12 00:43:29 +0000285Floats and integers.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000286
287 Floats are implemented with C doubles.
Neal Norwitz01688022007-08-12 00:43:29 +0000288 Integers have unlimited size (only limit is system resources)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000289
290Operators on all numeric types
291
292 Operators on all numeric types
293 Operation Result
294abs(x) the absolute value of x
295int(x) x converted to integer
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000296float(x) x converted to floating point
297-x x negated
298+x x unchanged
299x + y the sum of x and y
300x - y difference of x and y
301x * y product of x and y
302x / y quotient of x and y
303x % y remainder of x / y
304divmod(x, y) the tuple (x/y, x%y)
305x ** y x to the power y (the same as pow(x, y))
306
Neal Norwitz01688022007-08-12 00:43:29 +0000307Bit operators on integers
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000308
309 Bit operators
310Operation >Result
311~x the bits of x inverted
312x ^ y bitwise exclusive or of x and y
313x & y bitwise and of x and y
314x | y bitwise or of x and y
315x << n x shifted left by n bits
316x >> n x shifted right by n bits
317
318Complex Numbers
319
320 * represented as a pair of machine-level double precision floating point
321 numbers.
322 * The real and imaginary value of a complex number z can be retrieved through
323 the attributes z.real and z.imag.
324
325Numeric exceptions
326
327TypeError
328 raised on application of arithmetic operation to non-number
329OverflowError
330 numeric bounds exceeded
331ZeroDivisionError
332 raised when zero second argument of div or modulo op
Raymond Hettingere685f942003-01-26 03:29:15 +0000333FloatingPointError
334 raised when a floating point operation fails
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000335
336Operations on all sequence types (lists, tuples, strings)
337
338 Operations on all sequence types
339Operation Result Notes
Raymond Hettingere685f942003-01-26 03:29:15 +0000340x in s True if an item of s is equal to x, else False
341x not in s False if an item of s is equal to x, else True
Raymond Hettinger72348842003-01-25 21:22:52 +0000342for x in s: loops over the sequence
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000343s + t the concatenation of s and t
344s * n, n*s n copies of s concatenated
345s[i] i'th item of s, origin 0 (1)
346s[i:j] slice of s from i (included) to j (excluded) (1), (2)
347len(s) length of s
348min(s) smallest item of s
349max(s) largest item of (s)
Raymond Hettinger72348842003-01-25 21:22:52 +0000350iter(s) returns an iterator over s. iterators define __iter__ and next()
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000351
352Notes :
353 (1) if i or j is negative, the index is relative to the end of the string,
354ie len(s)+ i or len(s)+j is
355 substituted. But note that -0 is still 0.
356 (2) The slice of s from i to j is defined as the sequence of items with
357index k such that i <= k < j.
358 If i or j is greater than len(s), use len(s). If i is omitted, use
359len(s). If i is greater than or
360 equal to j, the slice is empty.
361
362Operations on mutable (=modifiable) sequences (lists)
363
364 Operations on mutable sequences
365 Operation Result Notes
366s[i] =x item i of s is replaced by x
367s[i:j] = t slice of s from i to j is replaced by t
368del s[i:j] same as s[i:j] = []
369s.append(x) same as s[len(s) : len(s)] = [x]
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000370s.count(x) return number of i's for which s[i] == x
Raymond Hettingere685f942003-01-26 03:29:15 +0000371s.extend(x) same as s[len(s):len(s)]= x
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000372s.index(x) return smallest i such that s[i] == x (1)
373s.insert(i, x) same as s[i:i] = [x] if i >= 0
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000374s.pop([i]) same as x = s[i]; del s[i]; return x (4)
Raymond Hettinger72348842003-01-25 21:22:52 +0000375s.remove(x) same as del s[s.index(x)] (1)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000376s.reverse() reverse the items of s in place (3)
377s.sort([cmpFct]) sort the items of s in place (2), (3)
378
379Notes :
380 (1) raise a ValueError exception when x is not found in s (i.e. out of
381range).
382 (2) The sort() method takes an optional argument specifying a comparison
383fct of 2 arguments (list items) which should
384 return -1, 0, or 1 depending on whether the 1st argument is
385considered smaller than, equal to, or larger than the 2nd
386 argument. Note that this slows the sorting process down considerably.
387 (3) The sort() and reverse() methods modify the list in place for economy
388of space when sorting or reversing a large list.
389 They don't return the sorted or reversed list to remind you of this
390side effect.
Raymond Hettinger72348842003-01-25 21:22:52 +0000391 (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 +0000392item is removed and returned.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000393
394
395
396Operations on mappings (dictionaries)
397
398 Operations on mappings
399 Operation Result Notes
400len(d) the number of items in d
401d[k] the item of d with key k (1)
402d[k] = x set d[k] to x
403del d[k] remove d[k] from d (1)
404d.clear() remove all items from d
405d.copy() a shallow copy of d
Raymond Hettinger72348842003-01-25 21:22:52 +0000406d.get(k,defaultval) the item of d with key k (4)
Raymond Hettingere685f942003-01-26 03:29:15 +0000407d.has_key(k) True if d has key k, else False
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000408d.items() a copy of d's list of (key, item) pairs (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000409d.iteritems() an iterator over (key, value) pairs (7)
410d.iterkeys() an iterator over the keys of d (7)
411d.itervalues() an iterator over the values of d (7)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000412d.keys() a copy of d's list of keys (2)
413d1.update(d2) for k, v in d2.items(): d1[k] = v (3)
414d.values() a copy of d's list of values (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000415d.pop(k) remove d[k] and return its value
416d.popitem() remove and return an arbitrary (6)
417 (key, item) pair
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000418d.setdefault(k,defaultval) the item of d with key k (5)
419
420 Notes :
421 TypeError is raised if key is not acceptable
422 (1) KeyError is raised if key k is not in the map
423 (2) Keys and values are listed in random order
424 (3) d2 must be of the same type as d1
425 (4) Never raises an exception if k is not in the map, instead it returns
426 defaultVal.
427 defaultVal is optional, when not provided and k is not in the map,
428 None is returned.
429 (5) Never raises an exception if k is not in the map, instead it returns
430 defaultVal, and adds k to map with value defaultVal. defaultVal is
431 optional. When not provided and k is not in the map, None is returned and
432 added to map.
Raymond Hettinger72348842003-01-25 21:22:52 +0000433 (6) Raises a KeyError if the dictionary is emtpy.
434 (7) While iterating over a dictionary, the values may be updated but
435 the keys cannot be changed.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000436
437Operations on strings
438
439Note that these string methods largely (but not completely) supersede the
440functions available in the string module.
441
442
443 Operations on strings
444 Operation Result Notes
445s.capitalize() return a copy of s with only its first character
446 capitalized.
447s.center(width) return a copy of s centered in a string of length width (1)
448 .
449s.count(sub[ return the number of occurrences of substring sub in (2)
450,start[,end]]) string s.
Raymond Hettinger72348842003-01-25 21:22:52 +0000451s.decode(([ return a decoded version of s. (3)
452 encoding
453 [,errors]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000454s.encode([ return an encoded version of s. Default encoding is the
Raymond Hettinger72348842003-01-25 21:22:52 +0000455 encoding current default string encoding. (3)
456 [,errors]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000457s.endswith(suffix return true if s ends with the specified suffix, (2)
Raymond Hettinger72348842003-01-25 21:22:52 +0000458 [,start[,end]]) otherwise return False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000459s.expandtabs([ return a copy of s where all tab characters are (4)
460tabsize]) expanded using spaces.
461s.find(sub[,start return the lowest index in s where substring sub is (2)
462[,end]]) found. Return -1 if sub is not found.
463s.index(sub[ like find(), but raise ValueError when the substring is (2)
464,start[,end]]) not found.
Raymond Hettinger72348842003-01-25 21:22:52 +0000465s.isalnum() return True if all characters in s are alphanumeric, (5)
466 False otherwise.
467s.isalpha() return True if all characters in s are alphabetic, (5)
468 False otherwise.
469s.isdigit() return True if all characters in s are digit (5)
470 characters, False otherwise.
471s.islower() return True if all characters in s are lowercase, False (6)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000472 otherwise.
Raymond Hettinger72348842003-01-25 21:22:52 +0000473s.isspace() return True if all characters in s are whitespace (5)
474 characters, False otherwise.
475s.istitle() return True if string s is a titlecased string, False (7)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000476 otherwise.
Raymond Hettinger72348842003-01-25 21:22:52 +0000477s.isupper() return True if all characters in s are uppercase, False (6)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000478 otherwise.
479s.join(seq) return a concatenation of the strings in the sequence
480 seq, seperated by 's's.
481s.ljust(width) return s left justified in a string of length width. (1),
482 (8)
483s.lower() return a copy of s converted to lowercase.
484s.lstrip() return a copy of s with leading whitespace removed.
485s.replace(old, return a copy of s with all occurrences of substring (9)
486new[, maxsplit]) old replaced by new.
487s.rfind(sub[ return the highest index in s where substring sub is (2)
488,start[,end]]) found. Return -1 if sub is not found.
489s.rindex(sub[ like rfind(), but raise ValueError when the substring (2)
490,start[,end]]) is not found.
491s.rjust(width) return s right justified in a string of length width. (1),
492 (8)
493s.rstrip() return a copy of s with trailing whitespace removed.
494s.split([sep[ return a list of the words in s, using sep as the (10)
495,maxsplit]]) delimiter string.
496s.splitlines([ return a list of the lines in s, breaking at line (11)
497keepends]) boundaries.
498s.startswith return true if s starts with the specified prefix,
499(prefix[,start[ otherwise return false. (2)
500,end]])
501s.strip() return a copy of s with leading and trailing whitespace
502 removed.
503s.swapcase() return a copy of s with uppercase characters converted
504 to lowercase and vice versa.
505 return a titlecased copy of s, i.e. words start with
506s.title() uppercase characters, all remaining cased characters
507 are lowercase.
508s.translate(table return a copy of s mapped through translation table (12)
509[,deletechars]) table.
510s.upper() return a copy of s converted to uppercase.
Raymond Hettinger5a772d32003-01-25 22:35:42 +0000511s.zfill(width) return a string padded with zeroes on the left side and
Raymond Hettinger72348842003-01-25 21:22:52 +0000512 sliding a minus sign left if necessary. never truncates.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000513
514Notes :
515 (1) Padding is done using spaces.
516 (2) If optional argument start is supplied, substring s[start:] is
517processed. If optional arguments start and end are supplied, substring s[start:
518end] is processed.
519 (3) Optional argument errors may be given to set a different error handling
520scheme. The default for errors is 'strict', meaning that encoding errors raise
521a ValueError. Other possible values are 'ignore' and 'replace'.
522 (4) If optional argument tabsize is not given, a tab size of 8 characters
523is assumed.
524 (5) Returns false if string s does not contain at least one character.
525 (6) Returns false if string s does not contain at least one cased
526character.
527 (7) A titlecased string is a string in which uppercase characters may only
528follow uncased characters and lowercase characters only cased ones.
529 (8) s is returned if width is less than len(s).
530 (9) If the optional argument maxsplit is given, only the first maxsplit
531occurrences are replaced.
532 (10) If sep is not specified or None, any whitespace string is a separator.
533If maxsplit is given, at most maxsplit splits are done.
534 (11) Line breaks are not included in the resulting list unless keepends is
535given and true.
536 (12) table must be a string of length 256. All characters occurring in the
537optional argument deletechars are removed prior to translation.
538
539String formatting with the % operator
540
541formatString % args--> evaluates to a string
542
543 * formatString uses C printf format codes : %, c, s, i, d, u, o, x, X, e, E,
544 f, g, G, r (details below).
545 * Width and precision may be a * to specify that an integer argument gives
546 the actual width or precision.
547 * The flag characters -, +, blank, # and 0 are understood. (details below)
548 * %s will convert any type argument to string (uses str() function)
549 * args may be a single arg or a tuple of args
550
551 '%s has %03d quote types.' % ('Python', 2) # => 'Python has 002 quote types.'
552
553 * Right-hand-side can also be a mapping:
554
555 a = '%(lang)s has %(c)03d quote types.' % {'c':2, 'lang':'Python}
556(vars() function very handy to use on right-hand-side.)
557
558 Format codes
559Conversion Meaning
560d Signed integer decimal.
561i Signed integer decimal.
562o Unsigned octal.
563u Unsigned decimal.
Christian Heimesa612dc02008-02-24 13:08:18 +0000564x Unsigned hexadecimal (lowercase).
565X Unsigned hexadecimal (uppercase).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000566e Floating point exponential format (lowercase).
567E Floating point exponential format (uppercase).
568f Floating point decimal format.
569F Floating point decimal format.
570g Same as "e" if exponent is greater than -4 or less than precision,
571 "f" otherwise.
572G Same as "E" if exponent is greater than -4 or less than precision,
573 "F" otherwise.
574c Single character (accepts integer or single character string).
575r String (converts any python object using repr()).
576s String (converts any python object using str()).
577% No argument is converted, results in a "%" character in the result.
578 (The complete specification is %%.)
579
580 Conversion flag characters
581Flag Meaning
582# The value conversion will use the ``alternate form''.
5830 The conversion will be zero padded.
584- The converted value is left adjusted (overrides "-").
585 (a space) A blank should be left before a positive number (or empty
586 string) produced by a signed conversion.
587+ A sign character ("+" or "-") will precede the conversion (overrides a
588 "space" flag).
589
590File Objects
591
592Created with built-in function open; may be created by other modules' functions
593as well.
594
595Operators on file objects
596
597 File operations
598 Operation Result
599f.close() Close file f.
600f.fileno() Get fileno (fd) for file f.
601f.flush() Flush file f's internal buffer.
Raymond Hettingere685f942003-01-26 03:29:15 +0000602f.isatty() True if file f is connected to a tty-like dev, else False.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000603f.read([size]) Read at most size bytes from file f and return as a string
604 object. If size omitted, read to EOF.
605f.readline() Read one entire line from file f.
606f.readlines() Read until EOF with readline() and return list of lines read.
607 Set file f's position, like "stdio's fseek()".
608f.seek(offset[, whence == 0 then use absolute indexing.
609whence=0]) whence == 1 then offset relative to current pos.
610 whence == 2 then offset relative to file end.
611f.tell() Return file f's current position (byte offset).
612f.write(str) Write string to file f.
613f.writelines(list Write list of strings to file f.
614)
615
616File Exceptions
617
618 EOFError
619 End-of-file hit when reading (may be raised many times, e.g. if f is a
620 tty).
621 IOError
Raymond Hettingere685f942003-01-26 03:29:15 +0000622 Other I/O-related I/O operation failure.
623 OSError
624 OS system call failed.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000625
626
627 Advanced Types
628
629 -See manuals for more details -
630 + Module objects
631 + Class objects
632 + Class instance objects
633 + Type objects (see module: types)
634 + File objects (see above)
635 + Slice objects
636 + XRange objects
637 + Callable types:
638 o User-defined (written in Python):
639 # User-defined Function objects
640 # User-defined Method objects
641 o Built-in (written in C):
642 # Built-in Function objects
643 # Built-in Method objects
644 + Internal Types:
645 o Code objects (byte-compile executable Python code: bytecode)
646 o Frame objects (execution frames)
647 o Traceback objects (stack trace of an exception)
648
649
650 Statements
651
652 pass -- Null statement
653 del name[,name]* -- Unbind name(s) from object. Object will be indirectly
654 (and automatically) deleted only if no longer referenced.
655 print [>> fileobject,] [s1 [, s2 ]* [,]
656 -- Writes to sys.stdout, or to fileobject if supplied.
657 Puts spaces between arguments. Puts newline at end
658 unless statement ends with comma.
659 Print is not required when running interactively,
660 simply typing an expression will print its value,
661 unless the value is None.
662 exec x [in globals [,locals]]
663 -- Executes x in namespaces provided. Defaults
664 to current namespaces. x can be a string, file
665 object or a function object.
666 callable(value,... [id=value], [*args], [**kw])
667 -- Call function callable with parameters. Parameters can
668 be passed by name or be omitted if function
669 defines default values. E.g. if callable is defined as
670 "def callable(p1=1, p2=2)"
671 "callable()" <=> "callable(1, 2)"
672 "callable(10)" <=> "callable(10, 2)"
673 "callable(p2=99)" <=> "callable(1, 99)"
674 *args is a tuple of positional arguments.
675 **kw is a dictionary of keyword arguments.
676
677 Assignment operators
678
679 Caption
680 Operator Result Notes
681 a = b Basic assignment - assign object b to label a (1)
682 a += b Roughly equivalent to a = a + b (2)
683 a -= b Roughly equivalent to a = a - b (2)
684 a *= b Roughly equivalent to a = a * b (2)
685 a /= b Roughly equivalent to a = a / b (2)
686 a %= b Roughly equivalent to a = a % b (2)
687 a **= b Roughly equivalent to a = a ** b (2)
688 a &= b Roughly equivalent to a = a & b (2)
689 a |= b Roughly equivalent to a = a | b (2)
690 a ^= b Roughly equivalent to a = a ^ b (2)
691 a >>= b Roughly equivalent to a = a >> b (2)
692 a <<= b Roughly equivalent to a = a << b (2)
693
694 Notes :
695 (1) Can unpack tuples, lists, and strings.
696 first, second = a[0:2]; [f, s] = range(2); c1,c2,c3='abc'
697 Tip: x,y = y,x swaps x and y.
698 (2) Not exactly equivalent - a is evaluated only once. Also, where
699 possible, operation performed in-place - a is modified rather than
700 replaced.
701
702 Control Flow
703
704 if condition: suite
705 [elif condition: suite]*
706 [else: suite] -- usual if/else_if/else statement
707 while condition: suite
708 [else: suite]
709 -- usual while statement. "else" suite is executed
710 after loop exits, unless the loop is exited with
711 "break"
712 for element in sequence: suite
713 [else: suite]
714 -- iterates over sequence, assigning each element to element.
715 Use built-in range function to iterate a number of times.
716 "else" suite executed at end unless loop exited
717 with "break"
718 break -- immediately exits "for" or "while" loop
719 continue -- immediately does next iteration of "for" or "while" loop
720 return [result] -- Exits from function (or method) and returns result (use a tuple to
721 return more than one value). If no result given, then returns None.
Raymond Hettingere685f942003-01-26 03:29:15 +0000722 yield result -- Freezes the execution frame of a generator and returns the result
Georg Brandla18af4e2007-04-21 15:47:16 +0000723 to the iterator's .__next__() method. Upon the next call to __next__(),
Raymond Hettingere685f942003-01-26 03:29:15 +0000724 resumes execution at the frozen point with all of the local variables
725 still intact.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000726
727 Exception Statements
728
729 assert expr[, message]
730 -- expr is evaluated. if false, raises exception AssertionError
731 with message. Inhibited if __debug__ is 0.
732 try: suite1
733 [except [exception [, value]: suite2]+
734 [else: suite3]
735 -- statements in suite1 are executed. If an exception occurs, look
736 in "except" clauses for matching <exception>. If matches or bare
737 "except" execute suite of that clause. If no exception happens
738 suite in "else" clause is executed after suite1.
739 If exception has a value, it is put in value.
740 exception can also be tuple of exceptions, e.g.
741 "except (KeyError, NameError), val: print val"
742 try: suite1
743 finally: suite2
744 -- statements in suite1 are executed. If no
745 exception, execute suite2 (even if suite1 is
746 exited with a "return", "break" or "continue"
747 statement). If exception did occur, executes
748 suite2 and then immediately reraises exception.
749 raise exception [,value [, traceback]]
750 -- raises exception with optional value
751 value. Arg traceback specifies a traceback object to
752 use when printing the exception's backtrace.
753 raise -- a raise statement without arguments re-raises
754 the last exception raised in the current function
755An exception is either a string (object) or a class instance.
756 Can create a new one simply by creating a new string:
757
758 my_exception = 'You did something wrong'
759 try:
760 if bad:
761 raise my_exception, bad
762 except my_exception, value:
763 print 'Oops', value
764
765Exception classes must be derived from the predefined class: Exception, e.g.:
766 class text_exception(Exception): pass
767 try:
768 if bad:
769 raise text_exception()
770 # This is a shorthand for the form
771 # "raise <class>, <instance>"
772 except Exception:
773 print 'Oops'
774 # This will be printed because
775 # text_exception is a subclass of Exception
776When an error message is printed for an unhandled exception which is a
777class, the class name is printed, then a colon and a space, and
778finally the instance converted to a string using the built-in function
779str().
Guido van Rossumcd16bf62007-06-13 18:07:49 +0000780All built-in exception classes derives from Exception, itself
781derived from BaseException.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000782
783Name Space Statements
784
785[1.51: On Mac & Windows, the case of module file names must now match the case
786as used
787 in the import statement]
788Packages (>1.5): a package is a name space which maps to a directory including
789 module(s) and the special initialization module '__init__.py'
790 (possibly empty). Packages/dirs can be nested. You address a
791 module's symbol via '[package.[package...]module.symbol's.
792import module1 [as name1] [, module2]*
793 -- imports modules. Members of module must be
794 referred to by qualifying with [package.]module name:
795 "import sys; print sys.argv:"
796 "import package1.subpackage.module; package1.subpackage.module.foo()"
797 module1 renamed as name1, if supplied.
798from module import name1 [as othername1] [, name2]*
799 -- imports names from module module in current namespace.
800 "from sys import argv; print argv"
801 "from package1 import module; module.foo()"
802 "from package1.module import foo; foo()"
803 name1 renamed as othername1, if supplied.
804from module import *
805 -- imports all names in module, except those starting with "_";
806 *to be used sparsely, beware of name clashes* :
807 "from sys import *; print argv"
808 "from package.module import *; print x'
809 NB: "from package import *" only imports the symbols defined
810 in the package's __init__.py file, not those in the
811 template modules!
812global name1 [, name2]*
813 -- names are from global scope (usually meaning from module)
814 rather than local (usually meaning only in function).
815 -- E.g. in fct without "global" statements, assuming
816 "a" is name that hasn't been used in fct or module
817 so far:
818 -Try to read from "a" -> NameError
819 -Try to write to "a" -> creates "a" local to fcn
820 -If "a" not defined in fct, but is in module, then
821 -Try to read from "a", gets value from module
822 -Try to write to "a", creates "a" local to fct
823 But note "a[0]=3" starts with search for "a",
824 will use to global "a" if no local "a".
825
826Function Definition
827
828def func_id ([param_list]): suite
829 -- Creates a function object & binds it to name func_id.
830
831 param_list ::= [id [, id]*]
832 id ::= value | id = value | *id | **id
833 [Args are passed by value.Thus only args representing a mutable object
834 can be modified (are inout parameters). Use a tuple to return more than
835 one value]
836
837Example:
838 def test (p1, p2 = 1+1, *rest, **keywords):
839 -- Parameters with "=" have default value (v is
840 evaluated when function defined).
841 If list has "*id" then id is assigned a tuple of
842 all remaining args passed to function (like C vararg)
843 If list has "**id" then id is assigned a dictionary of
844 all extra arguments passed as keywords.
845
846Class Definition
847
848class <class_id> [(<super_class1> [,<super_class2>]*)]: <suite>
849 -- Creates a class object and assigns it name <class_id>
850 <suite> may contain local "defs" of class methods and
851 assignments to class attributes.
852Example:
853 class my_class (class1, class_list[3]): ...
854 Creates a class object inheriting from both "class1" and whatever
855 class object "class_list[3]" evaluates to. Assigns new
856 class object to name "my_class".
857 - First arg to class methods is always instance object, called 'self'
858 by convention.
859 - Special method __init__() is called when instance is created.
860 - Special method __del__() called when no more reference to object.
861 - Create instance by "calling" class object, possibly with arg
862 (thus instance=apply(aClassObject, args...) creates an instance!)
863 - In current implementation, can't subclass off built-in
864 classes. But can "wrap" them, see UserDict & UserList modules,
865 and see __getattr__() below.
866Example:
867 class c (c_parent):
868 def __init__(self, name): self.name = name
869 def print_name(self): print "I'm", self.name
870 def call_parent(self): c_parent.print_name(self)
871 instance = c('tom')
872 print instance.name
873 'tom'
874 instance.print_name()
875 "I'm tom"
876 Call parent's super class by accessing parent's method
877 directly and passing "self" explicitly (see "call_parent"
878 in example above).
879 Many other special methods available for implementing
880 arithmetic operators, sequence, mapping indexing, etc.
881
882Documentation Strings
883
884Modules, classes and functions may be documented by placing a string literal by
885itself as the first statement in the suite. The documentation can be retrieved
886by getting the '__doc__' attribute from the module, class or function.
887Example:
888 class C:
889 "A description of C"
890 def __init__(self):
891 "A description of the constructor"
892 # etc.
893Then c.__doc__ == "A description of C".
894Then c.__init__.__doc__ == "A description of the constructor".
895
896Others
897
898lambda [param_list]: returnedExpr
899 -- Creates an anonymous function. returnedExpr must be
900 an expression, not a statement (e.g., not "if xx:...",
901 "print xxx", etc.) and thus can't contain newlines.
Guido van Rossum0919a1a2006-08-26 20:49:04 +0000902 Used mostly for filter(), map() functions, and GUI callbacks..
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000903List comprehensions
904result = [expression for item1 in sequence1 [if condition1]
905 [for item2 in sequence2 ... for itemN in sequenceN]
906 ]
907is equivalent to:
908result = []
909for item1 in sequence1:
910 for item2 in sequence2:
911 ...
912 for itemN in sequenceN:
913 if (condition1) and furthur conditions:
914 result.append(expression)
915
916
917
918Built-In Functions
919
920 Built-In Functions
921 Function Result
922__import__(name[, Imports module within the given context (see lib ref for
923globals[, locals[, more details)
924fromlist]]])
925abs(x) Return the absolute value of number x.
Raymond Hettingere685f942003-01-26 03:29:15 +0000926bool(x) Returns True when the argument x is true and False otherwise.
927buffer(obj) Creates a buffer reference to an object.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000928chr(i) Returns one-character string whose ASCII code isinteger i
Raymond Hettingere685f942003-01-26 03:29:15 +0000929classmethod(f) Converts a function f, into a method with the class as the
930 first argument. Useful for creating alternative constructors.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000931cmp(x,y) Returns negative, 0, positive if x <, ==, > to y
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000932compile(string, from which the code was read, or eg. '<string>'if not read
933filename, kind) from file.kind can be 'eval' if string is a single stmt, or
934 'single' which prints the output of expression statements
Guido van Rossume7ba4952007-06-06 23:52:48 +0000935 that evaluate to something else than None, or be 'exec'.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000936complex(real[, Builds a complex object (can also be done using J or j
937image]) suffix,e.g. 1+3J)
938delattr(obj, name) deletes attribute named name of object obj <=> del obj.name
939 If no args, returns the list of names in current
Raymond Hettingere685f942003-01-26 03:29:15 +0000940dict([items]) Create a new dictionary from the specified item list.
Guido van Rossume7ba4952007-06-06 23:52:48 +0000941dir([object]) local symbol table. With a module, class or class
942 instance object as arg, returns list of names in its attr.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000943 dict.
944divmod(a,b) Returns tuple of (a/b, a%b)
Raymond Hettingere685f942003-01-26 03:29:15 +0000945enumerate(seq) Return a iterator giving: (0, seq[0]), (1, seq[1]), ...
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000946eval(s[, globals[, Eval string s in (optional) globals, locals contexts.s must
947locals]]) have no NUL's or newlines. s can also be acode object.
948 Example: x = 1; incr_x = eval('x + 1')
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000949filter(function, Constructs a list from those elements of sequence for which
950sequence) function returns true. function takes one parameter.
951float(x) Converts a number or a string to floating point.
952getattr(object, [<default> arg added in 1.5.2]Gets attribute called name
953name[, default])) from object,e.g. getattr(x, 'f') <=> x.f). If not found,
Guido van Rossume7ba4952007-06-06 23:52:48 +0000954 raises AttributeError or returns default if specified.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000955globals() Returns a dictionary containing current global variables.
956hasattr(object, Returns true if object has attr called name.
957name)
958hash(object) Returns the hash value of the object (if it has one)
Raymond Hettingere685f942003-01-26 03:29:15 +0000959help(f) Display documentation on object f.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000960hex(x) Converts a number x to a hexadecimal string.
961id(object) Returns a unique 'identity' integer for an object.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000962int(x[, base]) base paramenter specifies base from which to convert string
963 values.
Guido van Rossume7ba4952007-06-06 23:52:48 +0000964isinstance(obj, Returns true if obj is an instance of class. Ifissubclass
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000965class) (A,B) then isinstance(x,A) => isinstance(x,B)
966issubclass(class1, returns true if class1 is derived from class2
967class2)
968 Returns the length (the number of items) of an object
Raymond Hettingere685f942003-01-26 03:29:15 +0000969iter(collection) Returns an iterator over the collection.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000970len(obj) (sequence, dictionary, or instance of class implementing
971 __len__).
972list(sequence) Converts sequence into a list. If already a list,returns a
973 copy of it.
974locals() Returns a dictionary containing current local variables.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000975 Applies function to every item of list and returns a listof
976map(function, list, the results. If additional arguments are passed,function
977...) must take that many arguments and it is givento function on
978 each call.
979max(seq) Returns the largest item of the non-empty sequence seq.
980min(seq) Returns the smallest item of a non-empty sequence seq.
981oct(x) Converts a number to an octal string.
982open(filename [, Returns a new file object. First two args are same asthose
983mode='r', [bufsize= for C's "stdio open" function. bufsize is 0for unbuffered,
984implementation 1 for line-buffered, negative forsys-default, all else, of
985dependent]]) (about) given size.
986ord(c) Returns integer ASCII value of c (a string of len 1). Works
987 with Unicode char.
Raymond Hettingere685f942003-01-26 03:29:15 +0000988object() Create a base type. Used as a superclass for new-style objects.
989open(name Open a file.
990 [, mode
991 [, buffering]])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +0000992pow(x, y [, z]) Returns x to power y [modulo z]. See also ** operator.
Raymond Hettingere685f942003-01-26 03:29:15 +0000993property() Created a property with access controlled by functions.
Guido van Rossume7ba4952007-06-06 23:52:48 +0000994range(start [,end Returns list of ints from >= start and < end. With 1 arg,
995[, step]]) list from 0..arg-1. With 2 args, list from start..end-1.
996 With 3 args, list from start up to end by step
997 after fixing it.
998repr(object) Returns a string containing a printable and if possible
999 evaluable representation of an object.
Neal Norwitz3bd844e2006-08-29 04:39:12 +00001000 Class redefinable (__repr__). See also str().
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001001round(x, n=0) Returns the floating point value x rounded to n digitsafter
1002 the decimal point.
Guido van Rossume7ba4952007-06-06 23:52:48 +00001003setattr(object, This is the counterpart of getattr(). setattr(o, 'foobar',
1004name, value) 3) <=> o.foobar = 3. Creates attribute if it doesn't exist!
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001005slice([start,] stop Returns a slice object representing a range, with R/
Guido van Rossume7ba4952007-06-06 23:52:48 +00001006[, step]) O attributes: start, stop, step.
Raymond Hettingere685f942003-01-26 03:29:15 +00001007staticmethod() Convert a function to method with no self or class
1008 argument. Useful for methods associated with a class that
1009 do not need access to an object's internal state.
Guido van Rossume7ba4952007-06-06 23:52:48 +00001010str(object) Returns a string containing a nicely
1011 printable representation of an object. Class overridable
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001012 (__str__).See also repr().
Raymond Hettingere685f942003-01-26 03:29:15 +00001013super(type) Create an unbound super object. Used to call cooperative
1014 superclass methods.
Raymond Hettingerca60cac2003-07-12 23:55:57 +00001015sum(sequence, Add the values in the sequence and return the sum.
1016 [start])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001017tuple(sequence) Creates a tuple with same elements as sequence. If already
1018 a tuple, return itself (not a copy).
1019 Returns a type object [see module types] representing
1020 thetype of obj. Example: import typesif type(x) ==
1021type(obj) types.StringType: print 'It is a string'NB: it is
1022 recommanded to use the following form:if isinstance(x,
1023 types.StringType): etc...
1024unichr(code) code.
1025unicode(string[, Creates a Unicode string from a 8-bit string, using
1026encoding[, error thegiven encoding name and error treatment ('strict',
1027]]]) 'ignore',or 'replace'}.
1028 Without arguments, returns a dictionary correspondingto the
1029 current local symbol table. With a module,class or class
1030vars([object]) instance object as argumentreturns a dictionary
1031 corresponding to the object'ssymbol table. Useful with "%"
1032 formatting operator.
Guido van Rossume7ba4952007-06-06 23:52:48 +00001033zip(seq1[, seq2, Returns an iterator of tuples where each tuple contains
1034...]) the nth element of each of the argument sequences.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001035
1036
1037
1038Built-In Exceptions
1039
1040Exception>
1041 Root class for all exceptions
1042 SystemExit
1043 On 'sys.exit()'
Raymond Hettingere685f942003-01-26 03:29:15 +00001044 StopIteration
Georg Brandla18af4e2007-04-21 15:47:16 +00001045 Signal the end from iterator.__next__()
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001046 ArithmeticError
1047 Base class for OverflowError, ZeroDivisionError,
1048 FloatingPointError
1049 FloatingPointError
1050 When a floating point operation fails.
1051 OverflowError
1052 On excessively large arithmetic operation
1053 ZeroDivisionError
1054 On division or modulo operation with 0 as 2nd arg
1055 AssertionError
1056 When an assert statement fails.
1057 AttributeError
1058 On attribute reference or assignment failure
1059 EnvironmentError [new in 1.5.2]
1060 On error outside Python; error arg tuple is (errno, errMsg...)
1061 IOError [changed in 1.5.2]
1062 I/O-related operation failure
1063 OSError [new in 1.5.2]
1064 used by the os module's os.error exception.
1065 EOFError
1066 Immediate end-of-file hit by input() or raw_input()
1067 ImportError
1068 On failure of `import' to find module or name
1069 KeyboardInterrupt
1070 On user entry of the interrupt key (often `Control-C')
1071 LookupError
1072 base class for IndexError, KeyError
1073 IndexError
1074 On out-of-range sequence subscript
1075 KeyError
1076 On reference to a non-existent mapping (dict) key
1077 MemoryError
1078 On recoverable memory exhaustion
1079 NameError
1080 On failure to find a local or global (unqualified) name
1081 RuntimeError
1082 Obsolete catch-all; define a suitable error instead
1083 NotImplementedError [new in 1.5.2]
1084 On method not implemented
1085 SyntaxError
1086 On parser encountering a syntax error
1087 IndentationError
1088 On parser encountering an indentation syntax error
1089 TabError
1090 On parser encountering an indentation syntax error
1091 SystemError
1092 On non-fatal interpreter error - bug - report it
1093 TypeError
1094 On passing inappropriate type to built-in op or func
1095 ValueError
1096 On arg error not covered by TypeError or more precise
Raymond Hettingere685f942003-01-26 03:29:15 +00001097 Warning
1098 UserWarning
1099 DeprecationWarning
1100 PendingDeprecationWarning
1101 SyntaxWarning
Raymond Hettingere685f942003-01-26 03:29:15 +00001102 RuntimeWarning
1103 FutureWarning
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001104
1105
1106
1107Standard methods & operators redefinition in classes
1108
1109Standard methods & operators map to special '__methods__' and thus may be
1110 redefined (mostly in in user-defined classes), e.g.:
1111 class x:
1112 def __init__(self, v): self.value = v
1113 def __add__(self, r): return self.value + r
1114 a = x(3) # sort of like calling x.__init__(a, 3)
1115 a + 4 # is equivalent to a.__add__(4)
1116
1117Special methods for any class
1118
1119(s: self, o: other)
1120 __init__(s, args) instance initialization (on construction)
1121 __del__(s) called on object demise (refcount becomes 0)
1122 __repr__(s) repr() and `...` conversions
1123 __str__(s) str() and 'print' statement
1124 __cmp__(s, o) Compares s to o and returns <0, 0, or >0.
1125 Implements >, <, == etc...
1126 __hash__(s) Compute a 32 bit hash code; hash() and dictionary ops
Jack Diederich62971282006-11-30 20:50:23 +00001127 __bool__(s) Returns False or True for truth value testing
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001128 __getattr__(s, name) called when attr lookup doesn't find <name>
1129 __setattr__(s, name, val) called when setting an attr
1130 (inside, don't use "self.name = value"
1131 use "self.__dict__[name] = val")
1132 __delattr__(s, name) called to delete attr <name>
1133 __call__(self, *args) called when an instance is called as function.
1134
1135Operators
1136
1137 See list in the operator module. Operator function names are provided with
1138 2 variants, with or without
1139 ading & trailing '__' (eg. __add__ or add).
1140
1141 Numeric operations special methods
1142 (s: self, o: other)
1143
1144 s+o = __add__(s,o) s-o = __sub__(s,o)
1145 s*o = __mul__(s,o) s/o = __div__(s,o)
1146 s%o = __mod__(s,o) divmod(s,o) = __divmod__(s,o)
1147 s**o = __pow__(s,o)
1148 s&o = __and__(s,o)
1149 s^o = __xor__(s,o) s|o = __or__(s,o)
1150 s<<o = __lshift__(s,o) s>>o = __rshift__(s,o)
Jack Diederich62971282006-11-30 20:50:23 +00001151 bool(s) = __bool__(s) (used in boolean testing)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001152 -s = __neg__(s) +s = __pos__(s)
1153 abs(s) = __abs__(s) ~s = __invert__(s) (bitwise)
1154 s+=o = __iadd__(s,o) s-=o = __isub__(s,o)
1155 s*=o = __imul__(s,o) s/=o = __idiv__(s,o)
1156 s%=o = __imod__(s,o)
1157 s**=o = __ipow__(s,o)
1158 s&=o = __iand__(s,o)
1159 s^=o = __ixor__(s,o) s|=o = __ior__(s,o)
1160 s<<=o = __ilshift__(s,o) s>>=o = __irshift__(s,o)
1161 Conversions
Neal Norwitz01688022007-08-12 00:43:29 +00001162 int(s) = __int__(s)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001163 float(s) = __float__(s) complex(s) = __complex__(s)
1164 oct(s) = __oct__(s) hex(s) = __hex__(s)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001165 Right-hand-side equivalents for all binary operators exist;
1166 are called when class instance is on r-h-s of operator:
1167 a + 3 calls __add__(a, 3)
1168 3 + a calls __radd__(a, 3)
1169
1170 All seqs and maps, general operations plus:
1171 (s: self, i: index or key)
1172
1173 len(s) = __len__(s) length of object, >= 0. Length 0 == false
1174 s[i] = __getitem__(s,i) Element at index/key i, origin 0
1175
1176 Sequences, general methods, plus:
1177 s[i]=v = __setitem__(s,i,v)
1178 del s[i] = __delitem__(s,i)
1179 s[i:j] = __getslice__(s,i,j)
1180 s[i:j]=seq = __setslice__(s,i,j,seq)
1181 del s[i:j] = __delslice__(s,i,j) == s[i:j] = []
1182 seq * n = __repeat__(seq, n)
1183 s1 + s2 = __concat__(s1, s2)
1184 i in s = __contains__(s, i)
1185 Mappings, general methods, plus
1186 hash(s) = __hash__(s) - hash value for dictionary references
1187 s[k]=v = __setitem__(s,k,v)
1188 del s[k] = __delitem__(s,k)
1189
1190Special informative state attributes for some types:
1191
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001192 Modules:
1193 __doc__ (string/None, R/O): doc string (<=> __dict__['__doc__'])
1194 __name__(string, R/O): module name (also in __dict__['__name__'])
1195 __dict__ (dict, R/O): module's name space
1196 __file__(string/undefined, R/O): pathname of .pyc, .pyo or .pyd (undef for
1197 modules statically linked to the interpreter)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001198
1199 Classes: [in bold: writable since 1.5.2]
1200 __doc__ (string/None, R/W): doc string (<=> __dict__['__doc__'])
Raymond Hettingere685f942003-01-26 03:29:15 +00001201 __module__ is the module name in which the class was defined
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001202 __name__(string, R/W): class name (also in __dict__['__name__'])
1203 __bases__ (tuple, R/W): parent classes
1204 __dict__ (dict, R/W): attributes (class name space)
1205
1206 Instances:
1207 __class__ (class, R/W): instance's class
1208 __dict__ (dict, R/W): attributes
Raymond Hettingere685f942003-01-26 03:29:15 +00001209
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001210 User-defined functions: [bold: writable since 1.5.2]
1211 __doc__ (string/None, R/W): doc string
1212 __name__(string, R/O): function name
1213 func_doc (R/W): same as __doc__
1214 func_name (R/O): same as __name__
1215 func_defaults (tuple/None, R/W): default args values if any
1216 func_code (code, R/W): code object representing the compiled function body
1217 func_globals (dict, R/O): ref to dictionary of func global variables
Raymond Hettingere685f942003-01-26 03:29:15 +00001218 func_dict (dict, R/W): same as __dict__ contains the namespace supporting
1219 arbitrary function attributes
1220 func_closure (R/O): None or a tuple of cells that contain bindings
1221 for the function's free variables.
1222
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001223
1224 User-defined Methods:
1225 __doc__ (string/None, R/O): doc string
1226 __name__(string, R/O): method name (same as im_func.__name__)
1227 im_class (class, R/O): class defining the method (may be a base class)
1228 im_self (instance/None, R/O): target instance object (None if unbound)
1229 im_func (function, R/O): function object
Raymond Hettingere685f942003-01-26 03:29:15 +00001230
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001231 Built-in Functions & methods:
1232 __doc__ (string/None, R/O): doc string
1233 __name__ (string, R/O): function name
1234 __self__ : [methods only] target object
Raymond Hettingere685f942003-01-26 03:29:15 +00001235
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001236 Codes:
1237 co_name (string, R/O): function name
1238 co_argcount (int, R/0): number of positional args
1239 co_nlocals (int, R/O): number of local vars (including args)
1240 co_varnames (tuple, R/O): names of local vars (starting with args)
Raymond Hettingere685f942003-01-26 03:29:15 +00001241 co_cellvars (tuple, R/O)) the names of local variables referenced by
1242 nested functions
1243 co_freevars (tuple, R/O)) names of free variables
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001244 co_code (string, R/O): sequence of bytecode instructions
1245 co_consts (tuple, R/O): litterals used by the bytecode, 1st one is
1246 fct doc (or None)
1247 co_names (tuple, R/O): names used by the bytecode
1248 co_filename (string, R/O): filename from which the code was compiled
1249 co_firstlineno (int, R/O): first line number of the function
1250 co_lnotab (string, R/O): string encoding bytecode offsets to line numbers.
1251 co_stacksize (int, R/O): required stack size (including local vars)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001252 co_flags (int, R/O): flags for the interpreter
1253 bit 2 set if fct uses "*arg" syntax
1254 bit 3 set if fct uses '**keywords' syntax
1255 Frames:
1256 f_back (frame/None, R/O): previous stack frame (toward the caller)
1257 f_code (code, R/O): code object being executed in this frame
1258 f_locals (dict, R/O): local vars
1259 f_globals (dict, R/O): global vars
1260 f_builtins (dict, R/O): built-in (intrinsic) names
1261 f_restricted (int, R/O): flag indicating whether fct is executed in
1262 restricted mode
1263 f_lineno (int, R/O): current line number
1264 f_lasti (int, R/O): precise instruction (index into bytecode)
1265 f_trace (function/None, R/W): debug hook called at start of each source line
1266 f_exc_type (Type/None, R/W): Most recent exception type
1267 f_exc_value (any, R/W): Most recent exception value
1268 f_exc_traceback (traceback/None, R/W): Most recent exception traceback
1269 Tracebacks:
1270 tb_next (frame/None, R/O): next level in stack trace (toward the frame where
1271 the exception occurred)
1272 tb_frame (frame, R/O): execution frame of the current level
Fred Drakedb390c12005-10-28 14:39:47 +00001273 tb_lineno (int, R/O): line number where the exception occurred
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001274 tb_lasti (int, R/O): precise instruction (index into bytecode)
1275
1276 Slices:
1277 start (any/None, R/O): lowerbound
1278 stop (any/None, R/O): upperbound
1279 step (any/None, R/O): step value
1280
1281 Complex numbers:
1282 real (float, R/O): real part
1283 imag (float, R/O): imaginary part
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001284
1285
1286Important Modules
1287
1288 sys
1289
1290 Some sys variables
1291 Variable Content
1292argv The list of command line arguments passed to aPython
1293 script. sys.argv[0] is the script name.
1294builtin_module_names A list of strings giving the names of all moduleswritten
1295 in C that are linked into this interpreter.
1296check_interval How often to check for thread switches or signals(measured
1297 in number of virtual machine instructions)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001298last_type, Set only when an exception not handled andinterpreter
1299last_value, prints an error. Used by debuggers.
1300last_traceback
1301maxint maximum positive value for integers
1302modules Dictionary of modules that have already been loaded.
1303path Search path for external modules. Can be modifiedby
1304 program. sys.path[0] == dir of script executing
1305platform The current platform, e.g. "sunos5", "win32"
1306ps1, ps2 prompts to use in interactive mode.
1307 File objects used for I/O. One can redirect byassigning a
1308stdin, stdout, new file object to them (or any object:.with a method
1309stderr write(string) for stdout/stderr,.with a method readline()
1310 for stdin)
1311version string containing version info about Python interpreter.
1312 (and also: copyright, dllhandle, exec_prefix, prefix)
1313version_info tuple containing Python version info - (major, minor,
1314 micro, level, serial).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001315
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001316 Some sys functions
1317 Function Result
1318exit(n) Exits with status n. Raises SystemExit exception.(Hence can
1319 be caught and ignored by program)
Raymond Hettingere685f942003-01-26 03:29:15 +00001320getrefcount(object Returns the reference count of the object. Generally one
1321) higher than you might expect, because of object arg temp
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001322 reference.
1323setcheckinterval( Sets the interpreter's thread switching interval (in number
Skip Montanaroeec26f92003-07-02 21:38:34 +00001324interval) of virtual code instructions, default:100).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001325settrace(func) Sets a trace function: called before each line ofcode is
1326 exited.
1327setprofile(func) Sets a profile function for performance profiling.
1328 Info on exception currently being handled; this is atuple
1329 (exc_type, exc_value, exc_traceback).Warning: assigning the
Guido van Rossume7ba4952007-06-06 23:52:48 +00001330exc_info() traceback return value to a local variable in a
Raymond Hettingere685f942003-01-26 03:29:15 +00001331 function handling an exception will cause a circular
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001332 reference.
1333setdefaultencoding Change default Unicode encoding - defaults to 7-bit ASCII.
1334(encoding)
1335getrecursionlimit Retrieve maximum recursion depth.
1336()
1337setrecursionlimit Set maximum recursion depth. (Defaults to 1000.)
1338()
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001339
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001340
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001341
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001342 os
1343"synonym" for whatever O/S-specific module is proper for current environment.
1344this module uses posix whenever possible.
1345(see also M.A. Lemburg's utility http://www.lemburg.com/files/python/
1346platform.py)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001347
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001348 Some os variables
1349 Variable Meaning
1350name name of O/S-specific module (e.g. "posix", "mac", "nt")
1351path O/S-specific module for path manipulations.
1352 On Unix, os.path.split() <=> posixpath.split()
1353curdir string used to represent current directory ('.')
1354pardir string used to represent parent directory ('..')
1355sep string used to separate directories ('/' or '\'). Tip: use
1356 os.path.join() to build portable paths.
1357altsep Alternate sep
1358if applicable (None
1359otherwise)
1360pathsep character used to separate search path components (as in
1361 $PATH), eg. ';' for windows.
1362linesep line separator as used in binary files, ie '\n' on Unix, '\
1363 r\n' on Dos/Win, '\r'
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001364
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001365 Some os functions
1366 Function Result
1367makedirs(path[, Recursive directory creation (create required intermediary
1368mode=0777]) dirs); os.error if fails.
1369removedirs(path) Recursive directory delete (delete intermediary empty
1370 dirs); if fails.
1371renames(old, new) Recursive directory or file renaming; os.error if fails.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001372
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001373
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001374
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001375 posix
1376don't import this module directly, import os instead !
1377(see also module: shutil for file copy & remove fcts)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001378
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001379 posix Variables
1380Variable Meaning
1381environ dictionary of environment variables, e.g.posix.environ['HOME'].
1382error exception raised on POSIX-related error.
1383 Corresponding value is tuple of errno code and perror() string.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001384
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001385 Some posix functions
1386 Function Result
1387chdir(path) Changes current directory to path.
1388chmod(path, Changes the mode of path to the numeric mode
1389mode)
1390close(fd) Closes file descriptor fd opened with posix.open.
1391_exit(n) Immediate exit, with no cleanups, no SystemExit,etc. Should use
1392 this to exit a child process.
1393execv(p, args) "Become" executable p with args args
1394getcwd() Returns a string representing the current working directory
1395getpid() Returns the current process id
1396fork() Like C's fork(). Returns 0 to child, child pid to parent.[Not
1397 on Windows]
1398kill(pid, Like C's kill [Not on Windows]
1399signal)
1400listdir(path) Lists (base)names of entries in directory path, excluding '.'
1401 and '..'
1402lseek(fd, pos, Sets current position in file fd to position pos, expressedas
1403how) an offset relative to beginning of file (how=0), tocurrent
1404 position (how=1), or to end of file (how=2)
1405mkdir(path[, Creates a directory named path with numeric mode (default 0777)
1406mode])
1407open(file, Like C's open(). Returns file descriptor. Use file object
1408flags, mode) fctsrather than this low level ones.
1409pipe() Creates a pipe. Returns pair of file descriptors (r, w) [Not on
1410 Windows].
1411popen(command, Opens a pipe to or from command. Result is a file object to
1412mode='r', read to orwrite from, as indicated by mode being 'r' or 'w'.
1413bufSize=0) Use it to catch acommand output ('r' mode) or to feed it ('w'
1414 mode).
1415remove(path) See unlink.
1416rename(src, dst Renames/moves the file or directory src to dst. [error iftarget
1417) name already exists]
1418rmdir(path) Removes the empty directory path
1419read(fd, n) Reads n bytes from file descriptor fd and return as string.
1420 Returns st_mode, st_ino, st_dev, st_nlink, st_uid,st_gid,
1421stat(path) st_size, st_atime, st_mtime, st_ctime.[st_ino, st_uid, st_gid
1422 are dummy on Windows]
1423system(command) Executes string command in a subshell. Returns exitstatus of
1424 subshell (usually 0 means OK).
1425 Returns accumulated CPU times in sec (user, system, children's
1426times() user,children's sys, elapsed real time). [3 last not on
1427 Windows]
1428unlink(path) Unlinks ("deletes") the file (not dir!) path. same as: remove
1429utime(path, ( Sets the access & modified time of the file to the given tuple
1430aTime, mTime)) of values.
1431wait() Waits for child process completion. Returns tuple ofpid,
1432 exit_status [Not on Windows]
1433waitpid(pid, Waits for process pid to complete. Returns tuple ofpid,
1434options) exit_status [Not on Windows]
1435write(fd, str) Writes str to file fd. Returns nb of bytes written.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001436
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001437
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001438
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001439 posixpath
1440Do not import this module directly, import os instead and refer to this module
1441as os.path. (e.g. os.path.exists(p)) !
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001442
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001443 Some posixpath functions
1444 Function Result
1445abspath(p) Returns absolute path for path p, taking current working dir in
1446 account.
1447dirname/
1448basename(p directory and name parts of the path p. See also split.
1449)
1450exists(p) True if string p is an existing path (file or directory)
1451expanduser Returns string that is (a copy of) p with "~" expansion done.
1452(p)
1453expandvars Returns string that is (a copy of) p with environment vars expanded.
1454(p) [Windows: case significant; must use Unix: $var notation, not %var%]
1455getsize( return the size in bytes of filename. raise os.error.
1456filename)
1457getmtime( return last modification time of filename (integer nb of seconds
1458filename) since epoch).
1459getatime( return last access time of filename (integer nb of seconds since
1460filename) epoch).
1461isabs(p) True if string p is an absolute path.
1462isdir(p) True if string p is a directory.
1463islink(p) True if string p is a symbolic link.
1464ismount(p) True if string p is a mount point [true for all dirs on Windows].
1465join(p[,q Joins one or more path components intelligently.
1466[,...]])
1467 Splits p into (head, tail) where tail is lastpathname component and
1468split(p) <head> is everything leadingup to that. <=> (dirname(p), basename
1469 (p))
1470splitdrive Splits path p in a pair ('drive:', tail) [Windows]
1471(p)
1472splitext(p Splits into (root, ext) where last comp of root contains no periods
1473) and ext is empty or startswith a period.
1474 Calls the function visit with arguments(arg, dirname, names) for
1475 each directory recursively inthe directory tree rooted at p
1476walk(p, (including p itself if it's a dir)The argument dirname specifies the
1477visit, arg visited directory, the argumentnames lists the files in the
1478) directory. The visit function maymodify names to influence the set
1479 of directories visited belowdirname, e.g., to avoid visiting certain
1480 parts of the tree.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001481
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001482
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001483
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001484 shutil
1485high-level file operations (copying, deleting).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001486
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001487 Main shutil functions
1488 Function Result
1489copy(src, dst) Copies the contents of file src to file dst, retaining file
1490 permissions.
1491copytree(src, dst Recursively copies an entire directory tree rooted at src
1492[, symlinks]) into dst (which should not already exist). If symlinks is
1493 true, links insrc are kept as such in dst.
1494rmtree(path[, Deletes an entire directory tree, ignoring errors if
1495ignore_errors[, ignore_errors true,or calling onerror(func, path,
1496onerror]]) sys.exc_info()) if supplied with
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001497
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001498(and also: copyfile, copymode, copystat, copy2)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001499
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001500time
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001501
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001502 Variables
1503Variable Meaning
1504altzone signed offset of local DST timezone in sec west of the 0th meridian.
1505daylight nonzero if a DST timezone is specified
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001506
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001507 Functions
1508 Function Result
1509time() return a float representing UTC time in seconds since the epoch.
1510gmtime(secs), return a tuple representing time : (year aaaa, month(1-12),day
1511localtime( (1-31), hour(0-23), minute(0-59), second(0-59), weekday(0-6, 0 is
1512secs) monday), Julian day(1-366), daylight flag(-1,0 or 1))
1513asctime(
1514timeTuple),
1515strftime(
1516format, return a formated string representing time.
1517timeTuple)
1518mktime(tuple) inverse of localtime(). Return a float.
1519strptime( parse a formated string representing time, return tuple as in
1520string[, gmtime().
1521format])
1522sleep(secs) Suspend execution for <secs> seconds. <secs> can be a float.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001523
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001524and also: clock, ctime.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001525
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001526 string
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001527
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001528As of Python 2.0, much (though not all) of the functionality provided by the
1529string module have been superseded by built-in string methods - see Operations
1530on strings for details.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001531
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001532 Some string variables
1533 Variable Meaning
1534digits The string '0123456789'
1535hexdigits, octdigits legal hexadecimal & octal digits
1536letters, uppercase, lowercase, Strings containing the appropriate
1537whitespace characters
1538index_error Exception raised by index() if substr not
1539 found.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001540
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001541 Some string functions
1542 Function Result
1543expandtabs(s, returns a copy of string <s> with tabs expanded.
1544tabSize)
1545find/rfind(s, sub Return the lowest/highest index in <s> where the substring
1546[, start=0[, end= <sub> is found such that <sub> is wholly contained ins
15470]) [start:end]. Return -1 if <sub> not found.
1548ljust/rjust/center Return a copy of string <s> left/right justified/centerd in
1549(s, width) afield of given width, padded with spaces. <s> is
1550 nevertruncated.
1551lower/upper(s) Return a string that is (a copy of) <s> in lowercase/
1552 uppercase
1553split(s[, sep= Return a list containing the words of the string <s>,using
1554whitespace[, the string <sep> as a separator.
1555maxsplit=0]])
1556join(words[, sep=' Concatenate a list or tuple of words with
1557']) interveningseparators; inverse of split.
Fred Drakedb390c12005-10-28 14:39:47 +00001558replace(s, old, Returns a copy of string <s> with all occurrences of
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001559new[, maxsplit=0] substring<old> replaced by <new>. Limits to <maxsplit>
1560 firstsubstitutions if specified.
1561strip(s) Return a string that is (a copy of) <s> without leadingand
1562 trailing whitespace. see also lstrip, rstrip.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001563
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001564
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001565
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001566 re (sre)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001567
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001568Handles Unicode strings. Implemented in new module sre, re now a mere front-end
1569for compatibility.
1570Patterns are specified as strings. Tip: Use raw strings (e.g. r'\w*') to
1571litteralize backslashes.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001572
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001573
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001574 Regular expression syntax
1575 Form Description
1576. matches any character (including newline if DOTALL flag specified)
1577^ matches start of the string (of every line in MULTILINE mode)
1578$ matches end of the string (of every line in MULTILINE mode)
1579* 0 or more of preceding regular expression (as many as possible)
1580+ 1 or more of preceding regular expression (as many as possible)
Fred Drakedb390c12005-10-28 14:39:47 +00001581? 0 or 1 occurrence of preceding regular expression
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001582*?, +?, ?? Same as *, + and ? but matches as few characters as possible
1583{m,n} matches from m to n repetitions of preceding RE
1584{m,n}? idem, attempting to match as few repetitions as possible
1585[ ] defines character set: e.g. '[a-zA-Z]' to match all letters(see also
1586 \w \S)
1587[^ ] defines complemented character set: matches if char is NOT in set
1588 escapes special chars '*?+&$|()' and introduces special sequences
1589\ (see below). Due to Python string rules, write as '\\' orr'\' in the
1590 pattern string.
1591\\ matches a litteral '\'; due to Python string rules, write as '\\\\
1592 'in pattern string, or better using raw string: r'\\'.
1593| specifies alternative: 'foo|bar' matches 'foo' or 'bar'
1594(...) matches any RE inside (), and delimits a group.
1595(?:...) idem but doesn't delimit a group.
1596 matches if ... matches next, but doesn't consume any of the string
1597(?=...) e.g. 'Isaac (?=Asimov)' matches 'Isaac' only if followed by
1598 'Asimov'.
1599(?!...) matches if ... doesn't match next. Negative of (?=...)
1600(?P<name matches any RE inside (), and delimits a named group. (e.g. r'(?P
1601>...) <id>[a-zA-Z_]\w*)' defines a group named id)
1602(?P=name) matches whatever text was matched by the earlier group named name.
1603(?#...) A comment; ignored.
1604(?letter) letter is one of 'i','L', 'm', 's', 'x'. Set the corresponding flags
1605 (re.I, re.L, re.M, re.S, re.X) for the entire RE.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001606
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001607 Special sequences
1608Sequence Description
1609number matches content of the group of the same number; groups are numbered
1610 starting from 1
1611\A matches only at the start of the string
1612\b empty str at beg or end of word: '\bis\b' matches 'is', but not 'his'
1613\B empty str NOT at beginning or end of word
1614\d any decimal digit (<=> [0-9])
1615\D any non-decimal digit char (<=> [^O-9])
1616\s any whitespace char (<=> [ \t\n\r\f\v])
1617\S any non-whitespace char (<=> [^ \t\n\r\f\v])
1618\w any alphaNumeric char (depends on LOCALE flag)
1619\W any non-alphaNumeric char (depends on LOCALE flag)
1620\Z matches only at the end of the string
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001621
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001622 Variables
1623Variable Meaning
1624error Exception when pattern string isn't a valid regexp.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001625
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001626 Functions
1627 Function Result
1628 Compile a RE pattern string into a regular expression object.
1629 Flags (combinable by |):
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001630
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001631 I or IGNORECASE or (?i)
1632 case insensitive matching
1633compile( L or LOCALE or (?L)
1634pattern[, make \w, \W, \b, \B dependent on thecurrent locale
1635flags=0]) M or MULTILINE or (?m)
1636 matches every new line and not onlystart/end of the whole
1637 string
1638 S or DOTALL or (?s)
1639 '.' matches ALL chars, including newline
1640 X or VERBOSE or (?x)
1641 Ignores whitespace outside character sets
1642escape(string) return (a copy of) string with all non-alphanumerics
1643 backslashed.
1644match(pattern, if 0 or more chars at beginning of <string> match the RE pattern
1645string[, flags string,return a corresponding MatchObject instance, or None if
1646]) no match.
1647search(pattern scan thru <string> for a location matching <pattern>, return
1648, string[, acorresponding MatchObject instance, or None if no match.
1649flags])
1650split(pattern, split <string> by occurrences of <pattern>. If capturing () are
1651string[, used inpattern, then occurrences of patterns or subpatterns are
1652maxsplit=0]) also returned.
1653findall( return a list of non-overlapping matches in <pattern>, either a
1654pattern, list ofgroups or a list of tuples if the pattern has more than 1
1655string) group.
1656 return string obtained by replacing the (<count> first) lefmost
1657sub(pattern, non-overlapping occurrences of <pattern> (a string or a RE
1658repl, string[, object) in <string>by <repl>; <repl> can be a string or a fct
1659count=0]) called with a single MatchObj arg, which must return the
1660 replacement string.
1661subn(pattern,
1662repl, string[, same as sub(), but returns a tuple (newString, numberOfSubsMade)
1663count=0])
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001664
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001665Regular Expression Objects
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001666
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001667
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001668(RE objects are returned by the compile fct)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001669
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001670 re object attributes
1671Attribute Descrition
1672flags flags arg used when RE obj was compiled, or 0 if none provided
1673groupindex dictionary of {group name: group number} in pattern
1674pattern pattern string from which RE obj was compiled
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001675
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001676 re object methods
1677 Method Result
1678 If zero or more characters at the beginning of string match this
1679 regular expression, return a corresponding MatchObject instance.
1680 Return None if the string does not match the pattern; note that
1681 this is different from a zero-length match.
1682 The optional second parameter pos gives an index in the string
1683match( where the search is to start; it defaults to 0. This is not
1684string[, completely equivalent to slicing the string; the '' pattern
1685pos][, character matches at the real beginning of the string and at
1686endpos]) positions just after a newline, but not necessarily at the index
1687 where the search is to start.
1688 The optional parameter endpos limits how far the string will be
1689 searched; it will be as if the string is endpos characters long, so
1690 only the characters from pos to endpos will be searched for a
1691 match.
1692 Scan through string looking for a location where this regular
1693search( expression produces a match, and return a corresponding MatchObject
1694string[, instance. Return None if no position in the string matches the
1695pos][, pattern; note that this is different from finding a zero-length
1696endpos]) match at some point in the string.
1697 The optional pos and endpos parameters have the same meaning as for
1698 the match() method.
1699split(
1700string[, Identical to the split() function, using the compiled pattern.
1701maxsplit=
17020])
1703findall( Identical to the findall() function, using the compiled pattern.
1704string)
1705sub(repl,
1706string[, Identical to the sub() function, using the compiled pattern.
1707count=0])
1708subn(repl,
1709string[, Identical to the subn() function, using the compiled pattern.
1710count=0])
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001711
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001712Match Objects
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001713
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001714
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001715(Match objects are returned by the match & search functions)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001716
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001717 Match object attributes
1718Attribute Description
1719pos value of pos passed to search or match functions; index intostring at
1720 which RE engine started search.
1721endpos value of endpos passed to search or match functions; index intostring
1722 beyond which RE engine won't go.
1723re RE object whose match or search fct produced this MatchObj instance
1724string string passed to match() or search()
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001725
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001726 Match object functions
1727Function Result
1728 returns one or more groups of the match. If one arg, result is a
1729group([g1 string;if multiple args, result is a tuple with one item per arg. If
1730, g2, gi is 0,return value is entire matching string; if 1 <= gi <= 99,
1731...]) returnstring matching group #gi (or None if no such group); gi may
1732 also bea group name.
1733 returns a tuple of all groups of the match; groups not
1734groups() participatingto the match have a value of None. Returns a string
1735 instead of tupleif len(tuple)=1
1736start(
1737group), returns indices of start & end of substring matched by group (or
1738end(group Noneif group exists but doesn't contribute to the match)
1739)
1740span( returns the 2-tuple (start(group), end(group)); can be (None, None)if
1741group) group didn't contibute to the match.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001742
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001743
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001744
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001745 math
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001746
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001747Variables:
1748pi
1749e
1750Functions (see ordinary C man pages for info):
1751acos(x)
1752asin(x)
1753atan(x)
1754atan2(x, y)
1755ceil(x)
1756cos(x)
1757cosh(x)
Raymond Hettingere685f942003-01-26 03:29:15 +00001758degrees(x)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001759exp(x)
1760fabs(x)
1761floor(x)
1762fmod(x, y)
1763frexp(x) -- Unlike C: (float, int) = frexp(float)
1764ldexp(x, y)
Raymond Hettingere685f942003-01-26 03:29:15 +00001765log(x [,base])
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001766log10(x)
1767modf(x) -- Unlike C: (float, float) = modf(float)
1768pow(x, y)
Raymond Hettingere685f942003-01-26 03:29:15 +00001769radians(x)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001770sin(x)
1771sinh(x)
1772sqrt(x)
1773tan(x)
1774tanh(x)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001775
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001776 getopt
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001777
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001778Functions:
1779getopt(list, optstr) -- Similar to C. <optstr> is option
1780 letters to look for. Put ':' after letter
1781 if option takes arg. E.g.
1782 # invocation was "python test.py -c hi -a arg1 arg2"
1783 opts, args = getopt.getopt(sys.argv[1:], 'ab:c:')
1784 # opts would be
1785 [('-c', 'hi'), ('-a', '')]
1786 # args would be
1787 ['arg1', 'arg2']
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001788
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001789
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001790List of modules and packages in base distribution
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001791
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001792(built-ins and content of python Lib directory)
1793(Python NT distribution, may be slightly different in other distributions)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001794
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001795 Standard library modules
1796 Operation Result
1797aifc Stuff to parse AIFF-C and AIFF files.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001798asynchat Support for 'chat' style protocols
1799asyncore Asynchronous File I/O (in select style)
1800atexit Register functions to be called at exit of Python interpreter.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001801base64 Conversions to/from base64 RFC-MIME transport encoding .
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001802bdb A generic Python debugger base class.
1803binhex Macintosh binhex compression/decompression.
1804bisect List bisection algorithms.
Raymond Hettingere685f942003-01-26 03:29:15 +00001805bz2 Support for bz2 compression/decompression.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001806calendar Calendar printing functions.
1807cgi Wraps the WWW Forms Common Gateway Interface (CGI).
Raymond Hettingere685f942003-01-26 03:29:15 +00001808cgitb Utility for handling CGI tracebacks.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001809cmd A generic class to build line-oriented command interpreters.
Raymond Hettingere685f942003-01-26 03:29:15 +00001810datetime Basic date and time types.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001811code Utilities needed to emulate Python's interactive interpreter
1812codecs Lookup existing Unicode encodings and register new ones.
1813colorsys Conversion functions between RGB and other color systems.
1814commands Tools for executing UNIX commands .
1815compileall Force "compilation" of all .py files in a directory.
Georg Brandl24420152008-05-26 16:32:26 +00001816configparser Configuration file parser (much like windows .ini files)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001817copy Generic shallow and deep copying operations.
Georg Brandl24420152008-05-26 16:32:26 +00001818copyreg Helper to provide extensibility for pickle/cPickle.
Raymond Hettingerca60cac2003-07-12 23:55:57 +00001819csv Read and write files with comma separated values.
Georg Brandl24420152008-05-26 16:32:26 +00001820dbm Generic interface to all dbm clones (dbm.bsd, dbm.gnu,
1821 dbm.ndbm, dbm.dumb).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001822dircache Sorted list of files in a dir, using a cache.
Raymond Hettingere685f942003-01-26 03:29:15 +00001823difflib Tool for creating delta between sequences.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001824dis Bytecode disassembler.
1825distutils Package installation system.
Raymond Hettingere685f942003-01-26 03:29:15 +00001826doctest Tool for running and verifying tests inside doc strings.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001827dospath Common operations on DOS pathnames.
Raymond Hettingere685f942003-01-26 03:29:15 +00001828email Comprehensive support for internet email.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001829filecmp File comparison.
1830fileinput Helper class to quickly write a loop over all standard input
1831 files.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001832fnmatch Filename matching with shell patterns.
1833formatter A test formatter.
1834fpformat General floating point formatting functions.
1835ftplib An FTP client class. Based on RFC 959.
1836gc Perform garbacge collection, obtain GC debug stats, and tune
1837 GC parameters.
1838getopt Standard command line processing. See also ftp://
1839 www.pauahtun.org/pub/getargspy.zip
1840getpass Utilities to get a password and/or the current user name.
1841glob filename globbing.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001842gzip Read & write gzipped files.
Raymond Hettingere685f942003-01-26 03:29:15 +00001843heapq Priority queue implemented using lists organized as heaps.
Georg Brandl24420152008-05-26 16:32:26 +00001844hmac Keyed-Hashing for Message Authentication -- RFC 2104.
1845html.entities HTML entity definitions.
1846html.parser A parser for HTML and XHTML.
1847http.client HTTP client class.
1848http.server HTTP server services.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001849ihooks Hooks into the "import" mechanism.
1850imaplib IMAP4 client.Based on RFC 2060.
1851imghdr Recognizing image files based on their first few bytes.
1852imputil Privides a way of writing customised import hooks.
Raymond Hettingere685f942003-01-26 03:29:15 +00001853inspect Tool for probing live Python objects.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001854keyword List of Python keywords.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001855linecache Cache lines from files.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001856locale Support for number formatting using the current locale
1857 settings.
Raymond Hettingere685f942003-01-26 03:29:15 +00001858logging Python logging facility.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001859macpath Pathname (or related) operations for the Macintosh.
1860macurl2path Mac specific module for conversion between pathnames and URLs.
1861mailbox A class to handle a unix-style or mmdf-style mailbox.
1862mailcap Mailcap file handling (RFC 1524).
1863mhlib MH (mailbox) interface.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001864mimetypes Guess the MIME type of a file.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001865mmap Interface to memory-mapped files - they behave like mutable
1866 strings./font>
1867multifile Class to make multi-file messages easier to handle.
1868mutex Mutual exclusion -- for use with module sched.
1869netrc
1870nntplib An NNTP client class. Based on RFC 977.
1871ntpath Common operations on DOS pathnames.
1872nturl2path Mac specific module for conversion between pathnames and URLs.
Raymond Hettingere685f942003-01-26 03:29:15 +00001873optparse A comprehensive tool for processing command line options.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001874os Either mac, dos or posix depending system.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001875pdb A Python debugger.
1876pickle Pickling (save and restore) of Python objects (a faster
1877 Cimplementation exists in built-in module: cPickle).
1878pipes Conversion pipeline templates.
Raymond Hettingere685f942003-01-26 03:29:15 +00001879pkgunil Utilities for working with Python packages.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001880poplib A POP3 client class. Based on the J. Myers POP3 draft.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001881posixpath Common operations on POSIX pathnames.
1882pprint Support to pretty-print lists, tuples, & dictionaries
1883 recursively.
1884profile Class for profiling python code.
1885pstats Class for printing reports on profiled python code.
Raymond Hettingere685f942003-01-26 03:29:15 +00001886pydoc Utility for generating documentation from source files.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001887pty Pseudo terminal utilities.
1888pyexpat Interface to the Expay XML parser.
1889py_compile Routine to "compile" a .py file to a .pyc file.
1890pyclbr Parse a Python file and retrieve classes and methods.
Georg Brandl24420152008-05-26 16:32:26 +00001891queue A multi-producer, multi-consumer queue.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001892quopri Conversions to/from quoted-printable transport encoding.
Raymond Hettinger5a772d32003-01-25 22:35:42 +00001893random Random variable generators
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001894re Regular Expressions.
Georg Brandl24420152008-05-26 16:32:26 +00001895reprlib Redo repr() but with limits on most sizes.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001896rlcompleter Word completion for GNU readline 2.0.
Raymond Hettinger2d95f1a2004-03-13 20:27:23 +00001897robotparser Parse robots.txt files, useful for web spiders.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001898sched A generally useful event scheduler class.
1899sgmllib A parser for SGML.
1900shelve Manage shelves of pickled objects.
1901shlex Lexical analyzer class for simple shell-like syntaxes.
1902shutil Utility functions usable in a shell-like program.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001903site Append module search paths for third-party packages to
1904 sys.path.
1905smtplib SMTP Client class (RFC 821)
1906sndhdr Several routines that help recognizing sound.
Alexandre Vassalottice261952008-05-12 02:31:37 +00001907socketserver Generic socket server classes.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001908stat Constants and functions for interpreting stat/lstat struct.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001909statvfs Constants for interpreting statvfs struct as returned by
1910 os.statvfs()and os.fstatvfs() (if they exist).
1911string A collection of string operations.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001912sunau Stuff to parse Sun and NeXT audio files.
1913sunaudio Interpret sun audio headers.
1914symbol Non-terminal symbols of Python grammar (from "graminit.h").
Georg Brandl0a7ac7d2008-05-26 10:29:35 +00001915tabnanny Check Python source for ambiguous indentation.
Raymond Hettingere685f942003-01-26 03:29:15 +00001916tarfile Facility for reading and writing to the *nix tarfile format.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001917telnetlib TELNET client class. Based on RFC 854.
1918tempfile Temporary file name allocation.
Raymond Hettingere685f942003-01-26 03:29:15 +00001919textwrap Object for wrapping and filling text.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001920threading Proposed new higher-level threading interfaces
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001921token Tokens (from "token.h").
1922tokenize Compiles a regular expression that recognizes Python tokens.
1923traceback Format and print Python stack traces.
1924tty Terminal utilities.
1925turtle LogoMation-like turtle graphics
1926types Define names for all type symbols in the std interpreter.
1927tzparse Parse a timezone specification.
1928unicodedata Interface to unicode properties.
1929urllib Open an arbitrary URL.
1930urlparse Parse URLs according to latest draft of standard.
1931user Hook to allow user-specified customization code to run.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001932uu UUencode/UUdecode.
Raymond Hettingere685f942003-01-26 03:29:15 +00001933unittest Utilities for implementing unit testing.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001934wave Stuff to parse WAVE files.
Raymond Hettingere685f942003-01-26 03:29:15 +00001935weakref Tools for creating and managing weakly referenced objects.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001936webbrowser Platform independent URL launcher.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001937xdrlib Implements (a subset of) Sun XDR (eXternal Data
Georg Brandl24420152008-05-26 16:32:26 +00001938 Representation).
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001939xml.dom Classes for processing XML using the Document Object Model.
1940xml.sax Classes for processing XML using the SAX API.
Georg Brandl38eceaa2008-05-26 11:14:17 +00001941xmlrpc.client Support for remote procedure calls using XML.
1942xmlrpc.server Create XMLRPC servers.
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001943zipfile Read & write PK zipped files.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001944
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001945
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001946
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001947* Built-ins *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001948
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001949 sys Interpreter state vars and functions
1950 __built-in__ Access to all built-in python identifiers
1951 __main__ Scope of the interpreters main program, script or stdin
1952 array Obj efficiently representing arrays of basic values
1953 math Math functions of C standard
Raymond Hettingere685f942003-01-26 03:29:15 +00001954 time Time-related functions (also the newer datetime module)
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001955 marshal Read and write some python values in binary format
1956 struct Convert between python values and C structs
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001957
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001958* Standard *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001959
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001960 getopt Parse cmd line args in sys.argv. A la UNIX 'getopt'.
1961 os A more portable interface to OS dependent functionality
1962 re Functions useful for working with regular expressions
1963 string Useful string and characters functions and exceptions
Raymond Hettingere685f942003-01-26 03:29:15 +00001964 random Mersenne Twister pseudo-random number generator
Georg Brandl2067bfd2008-05-25 13:05:15 +00001965 _thread Low-level primitives for working with process threads
1966 threading idem, new recommended interface.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001967
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001968* Unix/Posix *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001969
Georg Brandl0a7ac7d2008-05-26 10:29:35 +00001970 dbm Interface to Unix dbm databases
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001971 grp Interface to Unix group database
1972 posix OS functionality standardized by C and POSIX standards
1973 posixpath POSIX pathname functions
1974 pwd Access to the Unix password database
1975 select Access to Unix select multiplex file synchronization
1976 socket Access to BSD socket interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001977
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001978* Tk User-interface Toolkit *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001979
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001980 tkinter Main interface to Tk
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001981
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001982* Multimedia *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001983
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001984 audioop Useful operations on sound fragments
1985 imageop Useful operations on images
1986 jpeg Access to jpeg image compressor and decompressor
1987 rgbimg Access SGI imglib image files
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001988
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001989* Cryptographic Extensions *
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001990
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001991 md5 Interface to RSA's MD5 message digest algorithm
Andrew M. Kuchling5a9618e2004-08-31 13:43:19 +00001992 sha Interface to the SHA message digest algorithm
Raymond Hettingere685f942003-01-26 03:29:15 +00001993 HMAC Keyed-Hashing for Message Authentication -- RFC 2104.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001994
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001995* SGI IRIX * (4 & 5)
Guido van Rossumc8180cc1994-08-05 15:57:31 +00001996
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00001997 al SGI audio facilities
1998 AL al constants
1999 fl Interface to FORMS library
2000 FL fl constants
2001 flp Functions for form designer
2002 fm Access to font manager library
2003 gl Access to graphics library
2004 GL Constants for gl
2005 DEVICE More constants for gl
2006 imgfile Imglib image file interface
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002007
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002008
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002009Workspace exploration and idiom hints
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002010
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002011 dir(<module>) list functions, variables in <module>
2012 dir() get object keys, defaults to local name space
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002013 if __name__ == '__main__': main() invoke main if running as script
2014 map(None, lst1, lst2, ...) merge lists
2015 b = a[:] create copy of seq structure
2016 _ in interactive mode, is last value printed
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002017
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002018
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002019
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002020
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002021
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002022
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002023
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002024Python Mode for Emacs
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002025
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002026(Not revised, possibly not up to date)
2027Type C-c ? when in python-mode for extensive help.
2028INDENTATION
2029Primarily for entering new code:
2030 TAB indent line appropriately
2031 LFD insert newline, then indent
2032 DEL reduce indentation, or delete single character
2033Primarily for reindenting existing code:
2034 C-c : guess py-indent-offset from file content; change locally
2035 C-u C-c : ditto, but change globally
2036 C-c TAB reindent region to match its context
2037 C-c < shift region left by py-indent-offset
2038 C-c > shift region right by py-indent-offset
2039MARKING & MANIPULATING REGIONS OF CODE
2040C-c C-b mark block of lines
2041M-C-h mark smallest enclosing def
2042C-u M-C-h mark smallest enclosing class
2043C-c # comment out region of code
2044C-u C-c # uncomment region of code
2045MOVING POINT
2046C-c C-p move to statement preceding point
2047C-c C-n move to statement following point
2048C-c C-u move up to start of current block
2049M-C-a move to start of def
2050C-u M-C-a move to start of class
2051M-C-e move to end of def
2052C-u M-C-e move to end of class
2053EXECUTING PYTHON CODE
2054C-c C-c sends the entire buffer to the Python interpreter
2055C-c | sends the current region
2056C-c ! starts a Python interpreter window; this will be used by
2057 subsequent C-c C-c or C-c | commands
Raymond Hettingere685f942003-01-26 03:29:15 +00002058C-c C-w runs PyChecker
2059
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002060VARIABLES
2061py-indent-offset indentation increment
2062py-block-comment-prefix comment string used by py-comment-region
2063py-python-command shell command to invoke Python interpreter
2064py-scroll-process-buffer t means always scroll Python process buffer
2065py-temp-directory directory used for temp files (if needed)
2066py-beep-if-tab-change ring the bell if tab-width is changed
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002067
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002068
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002069The Python Debugger
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002070
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002071(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 +00002072
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002073Accessing
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002074
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002075import pdb (it's a module written in Python)
2076 -- defines functions :
2077 run(statement[,globals[, locals]])
2078 -- execute statement string under debugger control, with optional
2079 global & local environment.
2080 runeval(expression[,globals[, locals]])
2081 -- same as run, but evaluate expression and return value.
2082 runcall(function[, argument, ...])
2083 -- run function object with given arg(s)
2084 pm() -- run postmortem on last exception (like debugging a core file)
2085 post_mortem(t)
2086 -- run postmortem on traceback object <t>
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002087
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002088 -- defines class Pdb :
2089 use Pdb to create reusable debugger objects. Object
2090 preserves state (i.e. break points) between calls.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002091
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002092 runs until a breakpoint hit, exception, or end of program
2093 If exception, variable '__exception__' holds (exception,value).
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002094
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002095Commands
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002096
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002097h, help
2098 brief reminder of commands
2099b, break [<arg>]
2100 if <arg> numeric, break at line <arg> in current file
2101 if <arg> is function object, break on entry to fcn <arg>
2102 if no arg, list breakpoints
2103cl, clear [<arg>]
2104 if <arg> numeric, clear breakpoint at <arg> in current file
2105 if no arg, clear all breakpoints after confirmation
2106w, where
2107 print current call stack
2108u, up
2109 move up one stack frame (to top-level caller)
2110d, down
2111 move down one stack frame
2112s, step
2113 advance one line in the program, stepping into calls
2114n, next
2115 advance one line, stepping over calls
2116r, return
2117 continue execution until current function returns
2118 (return value is saved in variable "__return__", which
2119 can be printed or manipulated from debugger)
2120c, continue
2121 continue until next breakpoint
Raymond Hettingere685f942003-01-26 03:29:15 +00002122j, jump lineno
2123 Set the next line that will be executed
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002124a, args
2125 print args to current function
2126rv, retval
2127 prints return value from last function that returned
2128p, print <arg>
2129 prints value of <arg> in current stack frame
2130l, list [<first> [, <last>]]
2131 List source code for the current file.
2132 Without arguments, list 11 lines around the current line
2133 or continue the previous listing.
2134 With one argument, list 11 lines starting at that line.
2135 With two arguments, list the given range;
2136 if the second argument is less than the first, it is a count.
2137whatis <arg>
2138 prints type of <arg>
2139!
2140 executes rest of line as a Python statement in the current stack frame
2141q quit
2142 immediately stop execution and leave debugger
2143<return>
2144 executes last command again
2145Any input debugger doesn't recognize as a command is assumed to be a
2146Python statement to execute in the current stack frame, the same way
2147the exclamation mark ("!") command does.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002148
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002149Example
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002150
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002151(1394) python
2152Python 1.0.3 (Sep 26 1994)
2153Copyright 1991-1994 Stichting Mathematisch Centrum, Amsterdam
2154>>> import rm
2155>>> rm.run()
2156Traceback (innermost last):
2157 File "<stdin>", line 1
2158 File "./rm.py", line 7
2159 x = div(3)
2160 File "./rm.py", line 2
2161 return a / r
2162ZeroDivisionError: integer division or modulo
2163>>> import pdb
2164>>> pdb.pm()
2165> ./rm.py(2)div: return a / r
2166(Pdb) list
2167 1 def div(a):
2168 2 -> return a / r
2169 3
2170 4 def run():
2171 5 global r
2172 6 r = 0
2173 7 x = div(3)
2174 8 print x
2175[EOF]
2176(Pdb) print r
21770
2178(Pdb) q
2179>>> pdb.runcall(rm.run)
2180etc.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002181
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002182Quirks
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002183
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002184Breakpoints are stored as filename, line number tuples. If a module is reloaded
2185after editing, any remembered breakpoints are likely to be wrong.
Guido van Rossumc8180cc1994-08-05 15:57:31 +00002186
Andrew M. Kuchling13423f32001-08-06 17:43:49 +00002187Always single-steps through top-most stack frame. That is, "c" acts like "n".