Recuperation des donnees affichees en console

cs_cynthia06 Messages postés 6 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 janvier 2007 - 20 oct. 2006 à 15:07
cs_cynthia06 Messages postés 6 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 janvier 2007 - 23 oct. 2006 à 18:37
Bonjour a tous,





Je debute en Python et je suis en train de faire des scripts permettant d’automatiser le lancement d’un dial up avec un PPP account et un numero determine.<?xml:namespace prefix o ns "urn:schemas-microsoft-com:office:office" /??>





Pour cela, je lance un .bat a partir de Python avec la commande




os.system('ouverture.bat')








Le fichier ouverture.bat est un script lancant la commande DOS




rasdial "Dial-up Connection" [mailto:test@internet-entreprise test@internet-entreprise] /phone:*99#








Le truc qui me pose probleme, c’est que je veux recuperer ce qui s’affiche dans la fenetre DOS lors du lancement du dial up.



 








J’ai trouve le moyen de recuperer ca dans un fichier en ajoutant dans le .bat :




rasdial "Dial-up Connection PS call Sophia" cynthia /phone:*99***1# > C:\resultatsouverture.txt








Mais ce n’est pas tres pratique car le fichier resultatsouverture.txt est ecrase a chaque fois que je relance mon dial up.







Ma question est donc la suivante :





<ol style ="MARGIN-TOP: 0cm" type="1">
<li class="MsoNormal" style="mso-list: l0 level1 lfo1">

existe t'il un moyen pour que ce fichier resultatsouverture.txt ne soit pas ecrase a chaque fois que je relance le dial up?



</li>
<li class="MsoNormal" style="mso-list: l0 level1 lfo1">

ou bien serait il possible de recuperer directement dans un fichier texte le resultat de os.system(‘ouverture.bat’) avec file.write()

</li>
</ol>



Merci d'avance










 

2 réponses

cs_vychnou Messages postés 124 Date d'inscription dimanche 5 octobre 2003 Statut Membre Dernière intervention 11 mai 2009 18
23 oct. 2006 à 17:47
J'ai plusieurs solutions bidouille à te proposer:
La plus évidente: change > en >> pour écrire à la suite du fichier et non l'écraser.
rasdial "Dial-up Connection PS call Sophia" cynthia /phone:*99***1# >>C:\resultatsouverture.txt

Une autre solution consiste à générer toi même le fichier .bat puis à l'executer, puis à le supprimer. Ainsi, ton .bat est contenu dans ton fichier python, et à chaque fois tu peux faire varier le nom de sortie de ton fichier log. Ca reviendrai par exemple à ajouter dans ton fichier .bat la ligne "rasdial "Dial-up Connection PS call Sophia" cynthia /phone:*99***1# > C:\resultatsouverture"+cpt+".txt" ou cpt serai un nombre d'identifiant du fichier.

Pour ce qui est de lire dans la console, peut être faut il chercher du coté des pipes pour récupérer le flux de sortie de l'executable que tu executes. Peut être même n'as tu pas besoin d' un fichier .bat ..... Tu peux le lancer directement avec python.
A bientot!
0
cs_cynthia06 Messages postés 6 Date d'inscription vendredi 19 mai 2006 Statut Membre Dernière intervention 30 janvier 2007
23 oct. 2006 à 18:37
Bonjour et merci pour ta reponse. Pour le >> a la place du >, je l'avais effectivement trouve peu de temps apres avoir poste mon message.

Pour les autres solutions proposees, je vais tester et je te tiens au courant

Merci encore
0
Rejoignez-nous