Salut Maan !
J'ai mis en oeuvre la fonction que tu m'as conseillée.
Mais les erreurs de compilations sont toujours ignorées.
Soit dit en passant, pour que cette fonction marche chez moi, j'ai dû mettre
0 au troisième paramètre, plutôt qu'une chaîne vide, parce que se produisait
une erreur me disant qu'il fallait à la place une valeur de type integer.
Pour savoir si les erreurs de compilations et les autres types d'erreur
étaient traitées différemment, j'ai fait des tests d'exécution dans l'IDE du
python avec des codes à l'intérieur desquels j'avais volontairement inséré
des erreurs.
Et il m'est apparu que les erreurs de compilations sont affichées dans une
boîte de dialogue particulière, tandis que les autres types d'erreur sont
affichées dans la console, et peuvent même être suivi de textes ayant pû
s'afficher par la fonction print.
Ce qui veut dire que ces erreurs là n'interrompent pas l'exécution du
programme.
Le problème reste partiellement non résolu.
Mais merci quand même pour les infos, cela m'a permis de découvrir un
certain nombre de choses.
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
----- Original Message -----
From: "Maan ALOUN" <[email protected]>
To: <[email protected]>
Sent: Saturday, April 19, 2014 9:06 PM
Subject: [progliste] Re : Re: Re : python- envoyer le contenu de la console
dans un fichier texte
salut Yannick,
oui exactement l'erreur que tu souhaite la générer est de une erreur de
compilation, c'est à dire que le programme va s'arraiter avant de
l'exection.
si tu veux capter touts, il faut passer par un autre module c'est le
module subprocess.
import subprocess
proc = subprocess.Popen([sys.executable,fileName,'']
,stdout=subprocess.PIPE, stderr=subprocess.PIPE, shell=False)
#sys.executable c'est l'executable de python
#fileName c'est le fichier qu'on veut compiler par python
#stdout=subprocess.PIPE c'est la variable qui va avoir la sortis de la
console
#stderr=subprocess.PIPE c'est la variable qui va avoir la sortis en cas
d'erreur
variable =proc.stderr.read() #pour lire l'erreur
variable2 =proc.stdout.read() #pour lire la sortis normale
--------------------------------------------------
De : "Yannick Youalé" <[email protected]>
Date : samedi 19 avril 2014 19:09
À : <[email protected]>
Objet : [progliste] Re: Re : python- envoyer le contenu de la console dans
un fichier texte
Salut Yannick et J-F !
Oui, j'avais tenter de produire une erreur.
En mettant un nombre trop important de tabulation à une ligne.
J'ai aussi intégré une ligne avec la conditionnelle 'if' sans mettre le
caractère deux points (:) à la fin de la ligne comme cela se doit.
Et pour ces deux cas, niet, nada, rien, nothing, aucune réaction.
Mais après l'interpellation de J-F, j'ai introduit un mot inconnu dans le
fichier et là, il y a bien une erreur qui est reportée.
Se pourrait-il que dans la hiérarchie des erreurs, il y en ait qui ne
soient pas captables de cette façon ?
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
----- Original Message -----
From: "Jean-François Colas" <[email protected]>
To: <[email protected]>
Sent: Saturday, April 19, 2014 5:41 PM
Subject: [progliste] Re: Re : python- envoyer le contenu de la console
dans un fichier texte
Salut Yannick,
Ici je ne parviens pas à recréer le problème, tout a l'air de marcher.
De quel genre d'erreur est-ce que tu parles?
J'ai essayé de mettre une ligne bidon avent la ligne help, et j'ai
obtenu dans result.txt, le message d'erreur correspondant (traceback
(most recent call last)).
Aurais-tu une situation problématique à nous soumettre?
J.-F.
Le 19/04/2014 17:54, Yannick Youalé a écrit :
Salut Maan !
Je reviens à la charge !
Ayant utilisé les instructions que tu m'as donné la dernière fois, ce
que j'arrive à réaliser me satisfait à moitié.
En effet, j'arrive à envoyer tout ce qui est écrit en console dans un
fichier texte par les fonction print ou help, mais je n'arrive toujours
pas à capter un message d'erreur de code.
Voici l'échantillon de test que j'utilise. Il pourrait intéresser
d'autre j'imagine.
Début du code python
# -*- coding: utf-8 -*-
# importation du module sys pour lequel on va tenter de rechercher des
infos
import sys
# chemin vers le fichier devant contenir le résultat
filePath = "d:\\result.txt"
# création de l'objet représentant le fichier
file = open(filePath, "w")
# instruction qui envéront toute écriture dans la console vers le
fichier créé.
sys.stdout = file
sys.stderr = file
# écriture d'une ligne annonciatrice
# et appel de l'aide en console pour le module sys
# le texte sera directement envoyé dans le fichier result.txt
print('Voici le texte d\'aide pour le module sys\r\n')
help(sys)
# fermeture du fichier
file.close()
Fin du code python
Pas de pannique, il n'y a pas d'indentations nécessaires dans ce code.
Dès lors, comment envoyer les messages d'erreur également dans un
fichier texte ?
Merci !
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
----- Original Message -----
From: Maan ALOUN
To: [email protected]
Sent: Wednesday, April 16, 2014 3:04 PM
Subject: [progliste] Re : python- envoyer le contenu de la console
dans un fichier texte
salut Yannick,
sys.stderr=fichier
sys.stdout =fichier
n'oublis pas de sovgarder l'ancien sortis dans une variable où cas
où tu l'auras besoin .
De : Yannick Youalé
Date : mercredi 16 avril 2014 13:41
À : [email protected]
Objet : [progliste] python- envoyer le contenu de la console dans un
fichier texte
Salut à tous !
J'aimerais connaître un code pour envoyer le contenu de la console
python dans un fichier texte.
Ou un code qui capterait les message d'erreur et les enverait dans
un fichier texte.
Merci !
Yannick Daniel Youalé
La programmation est une religion. Aimez-la, ou quittez-la.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,
je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est
limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,
je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est limité
à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé,
je vous répondrez en privé.
Progliste :
Pour se désinscrire de la liste :
mailto:[email protected]?subject=unsubscribe
Pour voir les archives de la liste :
http://www.mail-archive.com/[email protected]/
Je vous rappelle que les pièces jointe sont activés leur taille est limité à 2 MO
Pour accéder aux fichiers de la liste
http://outils.archive-host.com/partage.php?id=2Qar9Hy6ftzr
Ou en utilisant la nouvelle page de partage :
http://outils-n.archive-host.com/partage-fm0m7b947vglikp9Efpso94gt
Pour y ajouter des fichiers demandez-moi le ou sur la liste ou en privé, je
vous répondrez en privé.