Python

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

  • Votes
  • Date
  • Date décroissante
  1. Contributeur
    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
    1. Modérateur
      Sous Windows ça se fait très bien aussi:
      python fic.py > fichier_resultat
      1. 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 ?
        1. Modérateur
          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')
      2. Modérateur
        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).