| Les modulesModules
On peut ranger les définitions de fonctions se rapportant à une même application au sein d’un script commun baptisé red module.Un module est sauvegardé sous forme d’un fichier dont le nom a la forme <nom du module>.py.Pour utiliser un module, il faut se servir de l’instruction import <nom du module>.L’exécution de cette instruction consiste à exécuter le script définissant le module (ce script peut contenir des instructions autres que des définitions de fonctions).Pour importer un module, Python a besoin de connaître le chemin qui permet d’accéder au fichier correspondant. Ce chemin doit apparaître dans la liste des chemins possibles stockés dans la variable pathdu modulesys. Modules - Première méthode d’importation>>> import random
>>> random.randint(0, 10)
9
Regardons de plus près cet exemple : 
L’instruction importvous permet d’importer toutes les fonctions du modulerandomEnsuite, nous utilisons la fonction randint(a, b)du modulerandom; attention cette fonction renvoie un nombre entier aléatoirement entreainclus etbinclus. Modules - Deuxième méthode d’importation
Pour disposer d’une fonction du module: >>> from random import randint
>>> random.randint(0, 10)
9
Pour disposer de toutes les fonctions d’un module: from math import *
racine = sqrt(49)
angle = pi/6
print sin(angle)
Visualiser l'exécution Normalement, import *est seulement utilisé dans l'interpréteur et déconseillé dans les scripts. C'est pour aider le lecteur à trouver la provenance des variables et fonctions du programme. Modules courants
math: fonctions et constantes mathématiques de base (sin, cos, exp, pi...).
sys: passage d’arguments, gestion de l’entrée/sortie standard etc...
os: dialogue avec le système d’exploitation.
random: génération de nombres aléatoires.
time: permet d’accéder aux fonctions gérant le temps.
profile: permet d’évaluer le temps d’exécution de chaque fonction dans un programme (profiling en anglais).
urllib: permet de récupérer des données sur internet depuis python.
Tkinter: interface python avec Tk (permet de créer des objets graphiques; nécessite d’installer Tk).
re: gestion des expressions régulières.
pickle: écriture et lecture de structures python (comme les dictionnaires par exemple).
fraction: pour des calculs avec fractions exactes.
... Quelques fonctions des modules courants>>> math.pow(2,10)   #Exposant
1024.0
>>> code_retour = os.system("echo 123")  #Executer une commande externe
123
>>> random.randint(0, 10)  #Choisis un entier au hasard
2
>>> random.choice(["a", "b", 3, "d"])  #Choisis un element d'une liste
'd'
>>> time.time()  # Nombre de secondes depuis 1970-01-01
1393935277.116552
>>> time.sleep(3)  # Attendre 3 seconds
>>> profile.run("time.sleep(3)")  # Calcule le temps d'excution
         4 function calls in 0.000 seconds
   Ordered by: standard name
   ncalls  tottime  percall  cumtime  percall filename:lineno(function)
        1    0.000    0.000    0.000    0.000 :0(setprofile)
        1    0.000    0.000    0.000    0.000 :0(sleep)
[...]
Quelques fonctions des modules courants>>> handle = urllib.urlopen("http://www.google.com")
>>> html = handle.read()  # Lire le contenu d'une page comme un fichier (que nous allons voir prochainement)
>>> print html
'<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage">
<head><meta itemprop="image" content="/images/google_favicon_128.png"><ti
tle>Google</title><script>(function(){\nwindow.google={kEI:"i8QVU8ejFqTt4
gTBvIDIAw",getEI:function(a){for(var b;a&&(!a.getAttribute||!(b=a.getAttr
[...]
>>> # Recherche des chaines de caractere dans un texte.
>>> # Dans cet exemple, on trouve les liens sur la page web'.
>>> re.findall('href="(.*?)"', html)
['/search?', 'http://www.google.fr/imghp?hl=fr&tab=wi', 'http://maps.
google.fr/maps?hl=fr&tab=wl', 'https://play.google.com/?hl=fr&tab=w8',
'http://www.youtube.com/?gl=FR&tab=w1', 'http://news.google.fr/nwshp?
[...]
>>> # Sauvegarde de variables dans des fichiers et lecture
>>> pickle.dump(liste, open("sauvegarde.pkl", "w"))
>>> listelue = pickle.load(open("sauvegarde.pkl"))
>>> listelue
['a', 'b', 'c']
Télécharger ces exemples dans un script Obtenir de l’aide
Pour obtenir de l’aide sur un module rien de plus simple, il suffit d’invoquer la commande help : >>> import random
>>> help(random)
Il est aussi possible d’invoquer de l’aide sur une fonction particulière d’un module en la précisant de la manière suivante :Ça marche même sur des variables et des types. >>> liste = [10, 20]
>>> help(liste)
>>> help(str)
 Les fichiersFichiers: utilisation courante$ cat exemple.txt 
Ceci est la premiere ligne
Ceci est la deuxieme ligne
Ceci est la troisieme ligne
Ceci est la quatrieme et derniere ligne
 >>> nom_fichier = "exemple.txt"
>>> contenu_fichier = open(nom_fichier).read()
>>> contenu_fichier
'Ceci est la premiere ligne\nCeci est la deuxieme ligne\nCeci est la
troisieme ligne\nCeci est la quatrieme et derniere ligne\n'
>>> contenu_a_ecrire = "hello world\n"
>>> open("exemple2.txt", "w").write(contenu_a_ecrire)
$ cat exemple2.txt
hello world
Autre exempleCréez un fichier dans un éditeur de texte que vous sauverez dans votre répertoire avec le nom exemple.txt, par exemple : Ceci est la premiere ligne
Ceci est la deuxieme ligne
Ceci est la troisieme ligne
Ceci est la quatrieme et derniere ligne
 Exemple readlines>>> file_in = open('exemple.txt','r')
>>> file_in
<open file 'exemple.txt', mode 'r' at 0x40155b20>
>>> lignes = file_in.readlines()
>>> lignes
['Ceci est la premiere ligne\n', 'Ceci est la deuxieme ligne\n', 
'Ceci est la troisieme ligne\n', 'Ceci est la quatrieme et derniere ligne\n']
>>> for i in lignes:
...   print i
...
Ceci est la premiere ligne
 
Ceci est la deuxieme ligne
 
Ceci est la troisieme ligne
 
Ceci est la quatrieme et derniere ligne
>>> file_in.close()
>>> file_in
<closed file 'exemple.txt', mode 'r' at 0x40155b20>
>>> file_in.close()
Exemple readCeci est la premiere ligne
Ceci est la deuxieme ligne
Ceci est la troisieme ligne
Ceci est la quatrieme et derniere ligne
 >>> file_in = open("exemple.txt","r")
>>> file_in.read()
'Ceci est la premiere ligne\nCeci est la deuxieme ligne\nCeci est la troisieme ligne\nCeci est la quatrieme et derniere ligne\n'
>>> file_in.close()
Exemple tellCeci est la premiere ligne
Ceci est la deuxieme ligne
Ceci est la troisieme ligne
Ceci est la quatrieme et derniere ligne
 >>> file_in = open("exemple.txt","r")
>>> file_in.tell()
0L
>>> file_in.readline()
'Ceci est la premiere ligne\n'
>>> file_in.tell()
27L
>>> file_in.seek(0)
>>> file_in.tell()
0L
>>> file_in.readline()
'Ceci est la premiere ligne\n'
>>> file_in.close()
Exemple write>>> animaux = ['girafe', 'hippopotame', 'singe', 'dahu' , 'ornithorynque']
>>> file_out = open('exemple2.txt','w')
>>> for i in animaux:
...   file_out.write(i)
...
>>> file_out.close()
>>>
$ cat exemple2.txt
girafehippopotamesingedahuornithorynque
$
Utilisation de fichiers
Il est important de dissocier les données des programmes qui les utilisent en rangeant ces données dans des fichiers séparés.Pour utiliser un fichier dans Python, il faut commencer par l’ouvrir ce qui retourne un objet de type file.Le paramètre facultatif <mode>indique le mode d’ouverture du fichier : 
r: mode lecture (le fichier doit exister préalablement)
w: mode écriture (si le fichier existe, les données sont écrasées, sinon le fichier est créé)
a: mode ajout (si le fichier existe, les données écrites vont l’être après celles existantes, sinon le fichier est créé)
Si le mode est omis, le mode par défaut est r. Utilisation de fichiers |