Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1493 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  Utilisation de l'interpréteur Python

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Utilisation de l'interpréteur Python

n°291791
yanis97
Posté le 22-01-2003 à 13:10:43  profilanswer
 

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
mood
Publicité
Posté le 22-01-2003 à 13:10:43  profilanswer
 

n°291794
lorill
Posté le 22-01-2003 à 13:12:34  profilanswer
 

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 :??:

n°291814
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 22-01-2003 à 13:45:16  profilanswer
 

réponse 2 minutes après le post :d
 
lorill > je t'imagine bien devant ton PC à l'affut du topic python mensuel [:rofl]


---------------
J'ai un string dans l'array (Paris Hilton)
n°291818
yanis97
Posté le 22-01-2003 à 13:49:18  profilanswer
 

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+;

n°291819
lorill
Posté le 22-01-2003 à 13:54:24  profilanswer
 

yanis97 a écrit :


Je souhaite mettre (1), (2), (3) ds un fichier "run" qui fait tout.


 
dans ce cas :
 

Code :
  1. # script run
  2. import sys
  3. fd = file("output.txt", "w+" )
  4. sys.stdout = fd
  5. import leModule
  6. fd.close()


 
pas testé, mais ca devrait passer
 
Harko> C'est un peu ca, oui  :sol:
 
Edit: oublié de précisé le mode d'ecriture


Message édité par lorill le 22-01-2003 à 13:58:07
n°291857
yanis97
Posté le 22-01-2003 à 14:40:00  profilanswer
 

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+;

n°291860
lorill
Posté le 22-01-2003 à 14:42:30  profilanswer
 

forcément, on a redirigé la sortie standard et tu parle d'une erreur...  [:sinclaire]  
 

Code :
  1. # script run
  2. import sys
  3. sys.stdout = file("stdout.txt", "w+" )
  4. sys.stderr = file("stderr.txt", "w+" )
  5. import leModule
  6. fd.close()


n°291884
yanis97
Posté le 22-01-2003 à 15:15:38  profilanswer
 

Le fd.close() est inutile !!!

n°291886
lorill
Posté le 22-01-2003 à 15:16:49  profilanswer
 

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

n°291907
yanis97
Posté le 22-01-2003 à 15:40:42  profilanswer
 

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+;

mood
Publicité
Posté le 22-01-2003 à 15:40:42  profilanswer
 

n°291909
lorill
Posté le 22-01-2003 à 15:43:43  profilanswer
 

yanis97 a écrit :


Normalement, je dois avoire ds le fichier de sortie :
 
'230 Bienvenue stlftp sur le STL....'


si tu lances le module sans passer par run, ca s'affiche bien dans la sortie standard ?

n°291931
yanis97
Posté le 22-01-2003 à 16:00:44  profilanswer
 

Oui sur l'interpreteur python ca marche !!!
 
Mais ds le fichier de sortie je n'ai rien ?

n°291986
yanis97
Posté le 22-01-2003 à 17:01:45  profilanswer
 

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+;

n°291987
yanis97
Posté le 22-01-2003 à 17:02:27  profilanswer
 

Les trois instructions :
 
from ftplib import FTP
ftp = FTP('fvc175';)
ftp.login('stlftp', 'stlftp';)

n°292975
Phod
Glouloulou ?
Posté le 24-01-2003 à 00:20:20  profilanswer
 

Yanis> je sais maintenant ou tu a recuperé ton  
fd = file("output.txt", "w+" )  
sys.stdout = fd  
 
:whistle:  


---------------
Signatures aux choix Votez:  O - Le python c'est bon, mangez-en  O - L'abus de forum rend dependant, postez avec modération
n°293029
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 24-01-2003 à 08:48:19  profilanswer
 

yanis> tu pourrais changer le titre de ton topic stp ? ça fait un peu double emploi avec la sous-cat là...


---------------
J'ai un string dans l'array (Paris Hilton)
n°293508
lorill
Posté le 24-01-2003 à 17:42:01  profilanswer
 

c'est moche, parce que chez moi ca marche :
 


vincent@laptop:~$ python
Python 2.2.2 (#1, Jan  3 2003, 12:42:27)  
[GCC 2.95.4 20011002 (Debian prerelease)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import sys
>>> sys.stdout = file("out.txt", "w+" )
>>> from ftplib import FTP
>>> ftp = FTP("localhost" )
>>> ftp.login('vincent', 'pass')
>>>  
vincent@laptop:~$ cat out.txt  
'230- Linux laptop 2.4.19-686 #1 Mon Nov 18 23:59:03 EST 2002 i686 unknown unknown GNU/Linux\n230- \n230- The programs included with the Debian GNU/Linux system are free software;\n230- the exact distribution terms for each program are described in the\n230- individual files in /usr/share/doc/*/copyright.\n230- \n230- Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent\n230- permitted by applicable law.\n230 User vincent logged in.'


 
t'es sous quelle plateforme ?

n°295949
Phod
Glouloulou ?
Posté le 29-01-2003 à 02:02:10  profilanswer
 

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...


---------------
Signatures aux choix Votez:  O - Le python c'est bon, mangez-en  O - L'abus de forum rend dependant, postez avec modération
n°297601
--greg--
Posté le 30-01-2003 à 23:39:35  profilanswer
 

euh une remarque, juste comme ça
python tonscript.py > blabla.txt  
 
ça marche aussi sous windows hein  :sarcastic:


---------------
#19b | Mardi 18 Février 2003 - nous fêtons les Bernadette | contre le fleur icq!
n°297603
lorill
Posté le 30-01-2003 à 23:40:58  profilanswer
 

--greg-- a écrit :

euh une remarque, juste comme ça
python tonscript.py > blabla.txt  
 
ça marche aussi sous windows hein  :sarcastic:  


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

n°297686
Harkonnen
Modérateur
Un modo pour les bannir tous
Posté le 31-01-2003 à 08:44:34  profilanswer
 

Yanis> puisque tu n'as pas voulu changer le titre de ton topic, je m'en suis chargé...


---------------
J'ai un string dans l'array (Paris Hilton)
mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  Utilisation de l'interpréteur Python

 

Sujets relatifs
[J++] question d'utilisation...Utilisation du processeur en %!!!
[Python/C++] Cooperation code Python avec appli C++tkdiff en python
Le Zen du PythonScirpts FTP en python
Utilisation de la fonction LoadLibrary == Visual C++[HTML, JS] Utilisation XSL et CSS pour formater du XML
la bonne utilisation de toArray ds les implémentations de Collectionmon petit cours de python
Plus de sujets relatifs à : Utilisation de l'interpréteur Python


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR