Utilisation de l'interpréteur Python - Python - Programmation
Marsh Posté le 22-01-2003 à 13:12:34
python fichier.py > output.txt
comme pour n'importe quelle commande...
sinon tu débute fichier.py par cette ligne :
#!/bin/env python
et tu le chmod +x
./fichier.py > output.txt
c'est bien ca que tu veux
Marsh Posté le 22-01-2003 à 13:45:16
réponse 2 minutes après le post
lorill > je t'imagine bien devant ton PC à l'affut du topic python mensuel
Marsh Posté le 22-01-2003 à 13:49:18
Il faut que ca soit indépendant de la plateforme :
> sous le shel (Unix)
Mais ou Windows c'est autre chose.
C'est pour ca que je souhaite faire cette redierction avec une commande python.
Ce que je veux faire : c'est
1- Lancer l'interpreteur python
2- exécuter des commandes python
3- Redirigés les sorties (resultats) ds un fichier pour vérifier s'il ya des erreurs.
Je souhaite mettre (1), (2), (3) ds un fichier "run" qui fait tout.
A+;
Marsh Posté le 22-01-2003 à 13:54:24
yanis97 a écrit : |
dans ce cas :
Code :
|
pas testé, mais ca devrait passer
Harko> C'est un peu ca, oui
Edit: oublié de précisé le mode d'ecriture
Marsh Posté le 22-01-2003 à 14:40:00
Ca ne marche pas :
Exemple :
# script run
import sys
fd = file("output.txt", "w+" )
sys.stdout = fd
from ftplib import FTP
ftp = FTP('fvc175'
ftp.login()
fd.close()
Le fichier output.txt est vide et voila c'est que j'ai en sortie :
Traceback (most recent call last):
File "D:\stl_test\VTP\test.py", line 9, in ?
ftp.login()
File "C:\Python22\lib\ftplib.py", line 368, in login
if resp[0] == '3': resp = self.sendcmd('PASS ' + passwd)
File "C:\Python22\lib\ftplib.py", line 242, in sendcmd
return self.getresp()
File "C:\Python22\lib\ftplib.py", line 215, in getresp
raise error_perm, resp
ftplib.error_perm: 530 Login incorrect.
Les résultats ci-dessus sont corrects, mais ils sont pas ds le fichier outpout.txt.
A+;
Marsh Posté le 22-01-2003 à 14:42:30
forcément, on a redirigé la sortie standard et tu parle d'une erreur...
Code :
|
Marsh Posté le 22-01-2003 à 15:16:49
yanis97 a écrit : Le fd.close() est inutile !!! |
il est même faux en fait, erreur de copier coller.
par contre pour faire propre faudrait fermer sys.stdout et sys.stderr même si c'est pas vraiment la peine
Marsh Posté le 22-01-2003 à 15:40:42
Au fait ca marche uniquement si j'ai des exceptions, sinon les deux fichiers stderr.txt stdout.txt sont vides.
Par exemple si je fais :
# script run
import sys
sys.stdout = file("stdout.txt", "wb" )
sys.stderr = file("stderr.txt", "wb" )
from ftplib import FTP
ftp = FTP('fvc175'
ftp.login('stlftp', 'stlftp'
Normalement, je dois avoire ds le fichier de sortie :
'230 Bienvenue stlftp sur le STL....'
Je ne comprend pas ?
A+;
Marsh Posté le 22-01-2003 à 15:43:43
yanis97 a écrit : |
si tu lances le module sans passer par run, ca s'affiche bien dans la sortie standard ?
Marsh Posté le 22-01-2003 à 16:00:44
Oui sur l'interpreteur python ca marche !!!
Mais ds le fichier de sortie je n'ai rien ?
Marsh Posté le 22-01-2003 à 17:01:45
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 ?
A+;
Marsh Posté le 22-01-2003 à 17:02:27
Les trois instructions :
from ftplib import FTP
ftp = FTP('fvc175'
ftp.login('stlftp', 'stlftp'
Marsh Posté le 24-01-2003 à 08:48:19
yanis> tu pourrais changer le titre de ton topic stp ? ça fait un peu double emploi avec la sous-cat là...
Marsh Posté le 24-01-2003 à 17:42:01
c'est moche, parce que chez moi ca marche :
|
t'es sous quelle plateforme ?
Marsh Posté le 29-01-2003 à 02:02:10
lorill> c bon, le pb a ete resolu...
c juste qu'il fallait penser que quand on est pas dans l'interpreteur, le print n'est plus automatique...
Marsh Posté le 30-01-2003 à 23:39:35
euh une remarque, juste comme ça
python tonscript.py > blabla.txt
ça marche aussi sous windows hein
Marsh Posté le 30-01-2003 à 23:40:58
--greg-- a écrit : euh une remarque, juste comme ça |
sauf que son machin stait la sortie d'erreur qu'il voulait rediriger pour son exception.
mais python lescript.py 2> toto.log le fait il me semble.
en tout cas sous 2k au boulot ca passe
Marsh Posté le 31-01-2003 à 08:44:34
Yanis> puisque tu n'as pas voulu changer le titre de ton topic, je m'en suis chargé...
Marsh Posté le 22-01-2003 à 13:10:43
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;
Message édité par yanis97 le 31-01-2003 à 08:43:32