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