Skip to main content

Introduction au scripting en Python

Posted in

Lors de notre réunion du mois de juin, Laurent nous a proposé une initiation au scripting en Python.

Python est assez à la mode car il est simple, facile à prendre en main et de nombreuses librairies existent.

Jugez en par vous-même ...

Exercice 1 : l'affectation

- créer un fichier hello.py

- avec un éditeur de texte de base (kate, spyder, nano, vim, ...), éditer le fichier

- taper le contenu suivant :

a='texte'
print a
a=1
print a

- remaquez la légèreté de la syntaxe et la facilité de déclaration de variables, sans type

- pour exécuter le script, tapez la commande "python hello.py"

Exercice 2 : l'accès aux commandes shell

- tapez "ipython" pour lancer python en mode interactif (comme Matlab pour les adeptes)

- tapez quelques calculs pour tester

- en tapant "import os", on peut accéder aux commandes

- par exemple, os.system('ls') permet d'exécuter la commande ls

Exercice 3: une boucle for

range(x,y) permet d'obtenir une liste de valeur ou x représente la borne inférieur et y le nombre d'éléments.

range(0,5)

[0, 1, 2, 3, 4]

 

Attention dans python, l'indentation sert de séparateur de bloc.

exemple:

for i in range(10):
    print i
    print i*2

Exercice 4 : conversion d'images à la volée (image1.png converti en image2.jpg)

import os
for i in range(10):
    imageName = image+str(i)
    if os.path.exists(imageName + '.png'):
        cmd = "convert " + imageName + '.png ' +  imageName +'.jpg'
        os.system(cmd)

 Exercice 5 : renommage d'images : image1.jpg en image001.png

Commande permettant de rajouter les 0 aux nombres pour qu'elles aient la même longueur.

str(12).zfill(5)
'00012'

script final :

import os
for i in range(10):
    imageName = image+str(i)
    num= 1
    if os.path.exists(imageName + '.png'):
        cmd = "convert " + imageName + '.png ' + str(num).zfill(3) + '.jpg'
        os.system(cmd)
        num++

Autres infos ...

Les commentaires en Python :

- le # permet de faire un commentaire sur une ligne

- le ''' xxx ... yyy''' permet de faire des commentaires multilignes.

 La librairie Scipy peut de remplacer MathLab avec ses librairies pour l'optimisation, l'interpolation numérique d'équations différentielles, l'algèbre linéaire, les statistiques, ...

Pour aller plus loin

http://diveintopython.adrahon.org/

http://python.developpez.com/cours/TutoSwinnen/

 

La nouvelle mailling list du lug est disponible chez tuxfamily

Pour s'y inscrire la procédure est disponible ici