2012-03-27 12 views
1

Ich verwende Python very high level layer, um einige Python-Code in eine kommerzielle Anwendung einzubetten, die eine proprietäre Skriptsprache unterstützt. Das Problem ist, dass die Anwendung selbst in C++ codiert ist und ein eingebettetes Protokollfenster hat, das cout und cerr anzeigt. Ich habe mich gefragt, ob es eine Möglichkeit gibt, von Python aus zu cut/cerr zu drucken ... Ich habe schon viel darüber geschwärmt, aber ich kann keinen einfachen Weg finden, es zu tun.Drucken von eingebetteten Python zu cout

Danke!

+1

Hm, was ist mit 'print'? Fehle ich etwas? – Philipp

+0

print geht an stdout und stderr ich brauche * es geht zu cout und cerr. – Mac

+0

Es hängt davon ab, wie die C++ - Anwendung die Ausgabe erfasst ... Wenn es die eigentlichen Low-Level-Datei-Handles neu zugewiesen hat, dann funktioniert 'print' in Python, sonst müssen Sie eventuell spezielle Python-Funktionen aufrufen, anstatt" print "aufzurufen '. –

Antwort

1

Es gibt keine einfache Art und Weise. Die Anwendung selbst muss Datei-Likes sys.stdout und sys.stderr zuweisen, um sie zu erfassen.

0

Sie können diese Anrufe verwendet tun:

import sys 
sys.stderr.write('blah blah\n') 
sys.stdout.write('blah blah\n') 

oder alternativ diese hier mit:

print >> sys.stderr, 'blah blah' 
print >> sys.stdout, 'blah blah'