Initiation à la programmation ENSAE 1A

seance4_module_fichier_regexp.tex

import d'un module


import math
print (math.cos(1))

from math import cos
print (cos(1))

from math import *    # cette syntaxe est déconseillée car il est possible qu'une fonction
print (cos(1))        # porte le même nom qu'une des vôtres

premier fichier : monmodule.py


import math

def fonction_cos_sequence(seq) :
    return [ math.cos(x) for x in seq ]
		
if __name__ == "__main__" :
    print ("ce message n'apparaîtra pas toujours")

second fichier : le programme principal


import monmodule

print ( monmodule.fonction_cos_sequence ( [ 1, 2, 3 ] )

écrire un fichier texte


mat = ...                                        # matrice de type liste de listes
with open ("mat.txt", "w") as f :                # création d'un fichier
    for i in range (0,len (mat)) :               # 
        for j in range (0, len (mat [i])) :      # 
            f.write ( str (mat [i][j]) + "\t")   # 
        f.write ("\n")                           # 

écrire un fichier texte (version condensée)


mat = ...                                        # matrice de type liste de listes
with open ("mat.txt", "w") as f :                # création d'un fichier
    f.write ( '\n'.join ( [   '\t'.join( [ str(x) for x in row ] ) for row in mat ] ) )

lecture d'un fichier texte


with open ("mat.txt", "r") as f :                # ouverture d'un fichier
    mat = [ row.strip(' \n').split('\t') for row in f.readlines() ]

contenu d'un répertoire


import os
for f in os.listdir('.'):
    print (f)

téléchargement des discours du président


import pyensae
discours = pyensae.download_data('voeux.zip', website = 'xd')

File: seance4_module_fichier_regexp.tex, line 170


[0-9]{4}/[0-9]{2}/[0-9]{2}

File: seance4_module_fichier_regexp.tex, line 174


a{2,10}

téléchargement de discours du président Sarkozy (issue de secours)

#coding:latin-1
import urllib.request, os, os.path
def charge_discours () :
    discours = { }
    for annee in [2001, 2005, 2006, 2007, 2008, 2009, 1974, 1975,
                    1979, 1983, 1987, 1989, 1990, 1994] :
        nom = "VOEUX%02d.txt" % (annee % 100)
        if os.path.exists (nom) :
            # si le fichier existe (il a déjà été téléchargé une fois)
            with open (nom, "r") as f :
                text = f.read ()
        else :
            # si le fichier n’existe pas
            link = "http://www.xavierdupre.fr/enseignement/td_python/" + \
            "python_td_minute/data/voeux_presidents/" + nom
            url = urllib.request.urlopen (link)
            text = url.read ().decode("latin-1")
            # on enregistre les données pour éviter de les télécharger une seconde fois
            with open (nom, "w") as f :
                f.write (text)
        discours [annee] = text
    return discours

if __name__ == "__main__" :
    discours = charge_discours ()
    print ("nombre de discours ", len(discours))