Python

djamel -  
sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   -
Bonjour;

Comment lancer automatiquement l'interpreteur Python pour exécuter des fichiers qui contiennent des commandes et récupérer le resultat dans un fichier output.

A+;

djamel;

4 réponses

  1. tafiscobar Messages postés 1281 Statut Contributeur 177
     
    a la prmeire de ton fichier qui comprend tes commandes tu mets ceci :
    #!/usr/bin/python
    ensuite ds ton interpreter de cdes, tu donnes a ton fichier le droit d'executioon et tu le lances comme ceci :
    supposons q le fichier python est fic.py
    >chmod +x fic.py
    >fic.py > fichier_resulat
    ##RM:tout ceci suppose q tu sois sous linux, sous win j n sais pas,
    tafiscobar
    0
  2. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Sous Windows ça se fait très bien aussi:
    python fic.py > fichier_resultat
    0
  3. djamel
     
    Il y'a une chose que je ne comprend pas ?
    ds le cas des logs, le fichier stdout.txt est vide :

    # script run
    import sys

    sys.stdout = file("stdout.txt", "wb")
    sys.stderr = file("stderr.txt", "wb")

    from ftplib import FTP (1)
    ftp = FTP('fvc175') (2)
    ftp.login('stlftp', 'stlftp') (3)

    Normalement, je dois avoire ds le fichier de sortie :

    '230 Bienvenue stlftp sur le STL....'

    Si je fais la même chose sous l'interpreteur => ca marche et je remplace les inst 1, 2 et 3 par un simple print 'coucou' => le fichier contient bien coucou

    Je ne comprend pas ?
    0
    1. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
       
      C'est normal ! :-)

      ftp.login('stlftp', 'stlftp') renvoie la chaîne '230 Bienvenue...'

      Quand tu tape ça dans la console, la console va t'afficher la valeur de retour.
      Mais dans ton programme, tu ne fais rien de la valeur de retour.
      Il faudrait faire:

      print ftp.login('stlftp', 'stlftp')
      0
  4. sebsauvage Messages postés 33284 Date d'inscription   Statut Modérateur Dernière intervention   15 684
     
    Pour être plus clair, c'est la même chose que:

    a = 5
    a


    Si tu tape ces 2 lignes dans la console, elle va t'afficher 5, car c'est la valeur de retour de a.
    Par contre, si tu exécute ceci en tant que fichier .py, rien ne s'affichera. Il faut explicitement afficher a (print a).
    0