python: info général

idle

pour le lancer

C:\Python31\python.exe C:\Python31\Lib\idlelib\idle.pyw -o %1 %2 %3 %4 %5 %6 %7 %8 %9
C:\Python31\python.exe C:\Python31\Lib\idlelib\idle.pyw -h

installation d’un module

python setup.py install

lecture de l’entrée standart

reponse = raw_input("Votre age: ")

Comment quitter son application ?

import sys
sys.exit()

Comment lancer un programme externe ?

import os
os.startfile('c:/windows/notepad.exe')
os.startfile('MonImage.bmp')
os.system("c:/windows/notepad.exe monfichier.log")
os.system('MonImage.bmp')
#nouveau processus
os.spawnl(os.P_NOWAIT, "c:/windows/notepad.exe")
os.popen("c:/windows/notepad.exe monfichier.log")

autre solution

import commands
commands.getstatusoutput('ls -l')

pour connaitre le retour d’une commande

import os
a = os.popen("ping")
a.read()

Comment ne pas afficher la fenêtre DOS à l’exécution du programme ?

Si vous ne voulez pas que la fenêtre DOS s’ouvre, vous devez appeler votre programme par l’interpréteur pythonw (situé dans le même répertoire que l’interpréteur python). En général, il suffit de changer l’extension de votre programme de .py en .pyw. Si la fenêtre DOS s’ouvre encore, il vous faut alors associer manuellement les fichiers .pyw à pythonw.

création de code dynamique

exec('if LettreCrypte in' + liste + ':\n print liste\n raw_input()')

faire un if en une ligne

on peut faire un if comme cela

a = 2
if a > 1:
    b = False
else:
    b = True

ou

a = 2
b = a >= 1 and True or False

print

name = 'David'
messages = 3
text = ('Hello %s, you have %i messages' % (name, messages))
print text
values = {'name': name, 'messages': messages}
print ('Hello %(name)s, you have %(messages)i '
    'messages' % values)

Gestion des erreurs

try:
    a = 1/0
except Exception, e:
    syslog.syslog('[%s][ERROR][ERROR]: %s ' % (sys.argv[0],e))
    #sys.argv[0] récupère le nom du programme

Création d’erreur

La fonction getPathFile lève une erreur si il ne trouve pas le fichier dans son path

from optparse import OptionParser
import sys
import os, os.path

def getPathFile(p):
    """
    Test of p is file with pwd and PYTHONPATH
    """
    if os.path.isfile(os.path.join(os.getcwd(),p)):
        return os.path.join(os.getcwd(),p)
    for i in sys.path:
        if os.path.isfile(os.path.join(i,p)):
            return os.path.join(i,p)
    raise AttributeError, '%s is not directory' % p

Test de la version python

#!/usr/bin/python
# Nom de fichier : versioncheck.py

import sys, warnings
if sys.version_info[0] < 3:
    warnings.warn("Need Python 3.0 for this program to run",
        RuntimeWarning)
else:
    print('Proceed as normal')