209 lines
4.7 KiB
Plaintext
209 lines
4.7 KiB
Plaintext
|
La :term:`librairie standard`
|
||
|
================================
|
||
|
|
||
|
.. module:: builtins
|
||
|
:synopsis: les fonctions directement à disposition sans import spécifique
|
||
|
|
||
|
- le module :mod:`builtins`, tout ce qui est accessible directement
|
||
|
|
||
|
>>> dir('__builtins__')
|
||
|
['__add__', '__class__', '__contains__', '__delattr__', '__doc__', '__eq__',
|
||
|
'__format__', '__ge__', '__getattribute__', '__getitem__', '__getnewargs__',
|
||
|
'__getslice__', '__gt__', '__hash__', '__init__', '__le__', '__len__', '__lt__',
|
||
|
'__mod__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__',
|
||
|
'__repr__', '__rmod__', '__rmul__', '__setattr__', '__sizeof__', '__str__',
|
||
|
'__subclasshook__', '_formatter_field_name_split', '_formatter_parser',
|
||
|
'capitalize', 'center', 'count', 'decode', 'encode', 'endswith', 'expandtabs',
|
||
|
'find', 'format', 'index', 'isalnum', 'isalpha', 'isdigit', 'islower',
|
||
|
'isspace', 'istitle', 'isupper', 'join', 'ljust', 'lower', 'lstrip',
|
||
|
'partition', 'replace', 'rfind', 'rindex', 'rjust', 'rpartition', 'rsplit',
|
||
|
'rstrip', 'split', 'splitlines', 'startswith', 'strip', 'swapcase', 'title',
|
||
|
'translate', 'upper', 'zfill']
|
||
|
>>>
|
||
|
|
||
|
- le module :mod:`subprocess`, appels systèmes
|
||
|
|
||
|
.. module:: subprocess
|
||
|
:synopsis: exécuter une commande shell, récupérer le code retour et la sortie
|
||
|
|
||
|
.. function:: subprocess.call(args, *, stdin=None, stdout=None, stderr=None, shell=False)¶
|
||
|
|
||
|
>>> subprocess.call(["ls", "-l"])
|
||
|
0
|
||
|
>>> subprocess.call("exit 1", shell=True)
|
||
|
1
|
||
|
|
||
|
.. function:: subprocess.check_output(args, *, stdin=None, stderr=None, shell=False, universal_newlines=False)¶
|
||
|
|
||
|
>>> subprocess.check_output(["echo", "Hello World!"])
|
||
|
'Hello World!\n'
|
||
|
|
||
|
>>> subprocess.check_output("exit 1", shell=True)
|
||
|
Traceback (most recent call last):
|
||
|
...
|
||
|
subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1
|
||
|
|
||
|
- le module :mod:`sys`, paramètres et fonctions systèmes
|
||
|
|
||
|
.. module:: sys
|
||
|
:synopsis: paramètres et fonctions systèmes
|
||
|
|
||
|
.. envvar:: sys.argv
|
||
|
|
||
|
la ligne de commande
|
||
|
|
||
|
.. function:: sys.exit()
|
||
|
|
||
|
terminer un programme
|
||
|
|
||
|
.. envvar:: sys.path
|
||
|
|
||
|
ce qu'il y a dans le :envvar:`PYTHONPATH`
|
||
|
|
||
|
.. module:: optparse
|
||
|
:synopsis: parsing de la ligne de commande
|
||
|
|
||
|
- le module :mod:`optparse` pour faire des outils ligne de commande
|
||
|
|
||
|
module plus récent : argparse
|
||
|
|
||
|
.. literalinclude:: snippets/cmdline.py
|
||
|
|
||
|
- les modules de tests unitaires :mod:`unittest` et :mod:`doctests`
|
||
|
|
||
|
.. module:: unittest
|
||
|
:synopsis: module de tests unitaires
|
||
|
|
||
|
.. module:: doctest
|
||
|
:synopsis: module de tests unitaires basé sur les docstrings
|
||
|
|
||
|
- le module :mod:`xml.etree` pour parser du xml
|
||
|
|
||
|
::
|
||
|
|
||
|
tree = xml.parse("testFile.xml")
|
||
|
rootElement = tree.getroot()
|
||
|
bookList = rootElem.findall("Books")
|
||
|
if bookList != None:
|
||
|
for book in bookList:
|
||
|
#faire quelque chose avec les livres
|
||
|
|
||
|
- le module :mod:`urllib` pour parser les urls et les manipuler (`urllib2`)
|
||
|
|
||
|
.. module:: urllib
|
||
|
:synopsis: parse des urls
|
||
|
|
||
|
.. function:: urllib.urlopen(url)
|
||
|
|
||
|
lit une url distante
|
||
|
|
||
|
.. module:: time
|
||
|
:synopsis: caculs de temps
|
||
|
|
||
|
- :mod:`time` pour la manipulation de temps
|
||
|
|
||
|
::
|
||
|
|
||
|
t1 = time.clock()
|
||
|
# Do Stuff Here
|
||
|
t2 = time.clock()
|
||
|
print t2 - t1
|
||
|
|
||
|
**now**
|
||
|
|
||
|
::
|
||
|
|
||
|
import time
|
||
|
now = time.localtime(time.time())
|
||
|
dateStr = time.strftime("%A, %B %d, %Y, %I:%M %p", now)
|
||
|
print dateStr
|
||
|
|
||
|
.. module:: getpass
|
||
|
:synopsis: recupération des mots de passe en ligne de commande
|
||
|
|
||
|
- le module :mod:`getpass` pour gérer les motes de passe
|
||
|
|
||
|
>>> import getpass
|
||
|
>>> p = getpass.getpass()
|
||
|
Password:
|
||
|
>>> p
|
||
|
'toto'
|
||
|
>>>
|
||
|
|
||
|
|
||
|
.. module:: shelve
|
||
|
:synopsis: linéarisation de données
|
||
|
|
||
|
linéarisation de données
|
||
|
==========================
|
||
|
|
||
|
>>> import shelve
|
||
|
>>> shelve.open("database", 'c')
|
||
|
{}
|
||
|
>>> s = shelve.open("database", 'c')
|
||
|
>>> s
|
||
|
{}
|
||
|
>>> s["o"] = ('a', 'b', 'c')
|
||
|
>>> s.cl
|
||
|
s.clear s.close
|
||
|
>>> s.cl
|
||
|
s.clear s.close
|
||
|
>>> s.close()
|
||
|
>>>
|
||
|
|
||
|
|
||
|
.. module:: abc
|
||
|
:synopsis: les abstract base classes
|
||
|
|
||
|
- le module :mod:`abc` pour faire des interfaces propres
|
||
|
|
||
|
.. function:: abc.register(subclass)
|
||
|
|
||
|
exemple
|
||
|
|
||
|
::
|
||
|
|
||
|
from abc import ABCMeta
|
||
|
|
||
|
class MyABC:
|
||
|
__metaclass__ = ABCMeta
|
||
|
|
||
|
MyABC.register(tuple)
|
||
|
|
||
|
assert issubclass(tuple, MyABC)
|
||
|
assert isinstance((), MyABC)
|
||
|
|
||
|
.. module:: hotshot
|
||
|
:synopsis: benchmark
|
||
|
|
||
|
- le module :mod:`hotshot` benchmark
|
||
|
|
||
|
::
|
||
|
|
||
|
import hotshot
|
||
|
prof = hotshot.Profile('toto.txt')
|
||
|
prof.runcall(make_description)
|
||
|
prof.close()
|
||
|
|
||
|
|
||
|
- un exemple de librairie externe : :mod:`IPy`
|
||
|
|
||
|
.. module:: IPy
|
||
|
:synopsis: traitement des ips en python < python 3.3 remplacé par ipadress
|
||
|
|
||
|
::
|
||
|
|
||
|
sudo apt-get install python-ipy
|
||
|
|
||
|
::
|
||
|
|
||
|
from IPy import IP
|
||
|
|
||
|
try:
|
||
|
ipy = IP('{0}/{1}'.format(ip, mask), make_net=True)
|
||
|
except ValueError:
|
||
|
print "marche pas"
|
||
|
network = ipy.net()
|
||
|
broadcast = ipy.broadcast()
|
||
|
return broadcast, network
|