pythonw.exe n'a pas de console, donc je ne peux pas voir la sortie d'impression. Mais mon programme est OKAY dans python.exe, échoué dans pythonw.exe. Je veux juste voir les journaux de l'interpréteur python et le journal imprimé par mon "impression" déclaration, est-ce faisable?Puis-je obtenir la sortie de l'instruction "print" dans pythonw?
Répondre
Vous pouvez globalement stdout en attribuant Rediriger à sys.stdout:
import sys
sys.stdout = open("mylog.txt", "w")
Puis le reste de stdout de votre programme, y compris les déclarations d'impression, ira à mylog.txt.
Vous pouvez rediriger la sortie d'impression vers n'importe quel flux. Par exemple
logfile = open("logfile.txt", "w")
print >>logfile, "This is a log test"
Bien que la plupart du temps, il serait plus approprié d'utiliser les installations d'exploitation forestière intégrée de python à partir du module logging
.
J'ai trouvé qu'une instruction d'impression normale trop longue provoquera le blocage du programme. Vous devez rediriger la sortie. Pour tester cette idée de créer un programme simple
import time
time.sleep(5)
Enregistrer comme test.pyw. Lorsque vous exécutez ce programme, il apparaîtra sur le gestionnaire de tâches. Maintenant, modifiez-le en ajoutant une instruction d'impression. Ce fichier texte contient plus de 100 lignes.
import time
string = ''
filename = 'pathto/text.txt'
f = open(filename,'r')
for line in f:
string = string + ' ' + line
f.close()
print string
time.sleep(5)
Le programme va planter.
LOL, vous avez une tabulation dans votre nom de fichier? : D Votre programme est très susceptible de planter autrement. La bonne façon d'accomplir ce que vous avez fait est d'utiliser ''' .join'. – Gandaro
Vous pouvez rediriger la sortie vers n'importe quelle classe qui implémente une méthode .write. Par exemple, je redirige à la fois sys.stdout et sys.stderr vers une classe qui écrit les résultats dans une zone de texte enrichie, avec la sortie normale en noir et les erreurs en rouge.
logControl = None
def LogWrite(text, color):
logControl.SetDefaultStyle(wx.TextAttr(color, wx.NullColour))
logControl.WriteText(text)
class RedirectStdOut:
def write(self,string):
LogWrite(string, "BLACK")
class RedirectStdErr:
def write(self,string):
LogWrite(string, "RED")
....
sys.stdout = RedirectStdOut()
sys.stderr = RedirectStdErr()
Dans ce cas, logControl est juste une référence à une zone de texte riche que je peux supposer existe. Vous pouvez écrire à la fois le contrôle et un fichier, rediriger vers dbgview ou faire à peu près tout ce que vous voulez avec.
- 1. Comment trouver la source de la sortie de la console print() ou NSLog() dans Xcode
- 2. obtenir la sortie de la console
- 3. Détermine si un script s'exécute dans pythonw?
- 4. Comment obtenir la sortie de subprocess.Popen()
- 5. Comment utiliser localtime de Perl avec print pour obtenir l'horodatage?
- 6. Obtenir la sortie de vue dans Oracle
- 7. Pourquoi la sortie eclipse + pydev print() semble étrange avec deux chaînes de caractères?
- 8. PHP print() Chaîne arabe
- 9. Sortie (echo/print) tout depuis un tableau PHP
- 10. Obtenir la sortie sqlcmd dans un GridView
- 11. Obtenir la sortie dans Array Collection
- 12. python: obtenir la sortie d'impression dans une instruction exec
- 13. obtenir la sortie et l'état de sortie shell_exec()
- 14. Comment obtenir la sortie de commande externe combiner avec Pipe
- 15. Obtenir la sortie d'un fil
- 16. Obtenir la sortie d'un processus
- 17. obtenir la sortie au format
- 18. Python Subprocess obtenir la sortie de l'enfant
- 19. Obtenir la sortie entière de sous-processus.Popen
- 20. ne pas obtenir la sortie de la commande parmiko/ssh
- 21. Exécution d'un processus pythonw avec Popen sans console
- 22. dynamic_bit set print?
- 23. PHP Print Date Format variable
- 24. obtenir la sortie de commande pour analyser dans c/MacOSX
- 25. Print Dialog Focus Issue
- 26. perl print formating question
- 27. `print foo.communicate() [0]` `diffèrent de l'impression foo.communicate()` »
- 28. ASP print xml chaîne formatée
- 29. comment obtenir la sortie de la console à partir d'un ordinateur distant (ssh + python)
- 30. Comment obtenir la sortie HTML d'un DataGrid?
Comment ça marche? –