Ich sehe keinen besseren Weg. Der Code soll das Befehlszeilenprogramm unterstützen, und die API scheint nicht vollständig als Bibliothek verwendet zu werden.
Wenn Sie wirklich die Kompilierung verwenden müssten, dann könnten Sie es mit diesem Hack vortäuschen, der bemerkt, dass "leise" während des gefangenen Ausnahmebehandlers auf Boolesche Eigenschaften getestet wird. Ich kann außer Kraft setzen, dass mit ungleich Null, überprüfen Sie den Ausnahmezustand zu sehen, ob es von py_compile kam (ruhig in anderen Kontexten getestet) und etwas tun mit diesen Informationen:
import sys
import py_compile
import compileall
class ReportProblem:
def __nonzero__(self):
type, value, traceback = sys.exc_info()
if type is not None and issubclass(type, py_compile.PyCompileError):
print "Problem with", repr(value)
raise type, value, traceback
return 1
report_problem = ReportProblem()
compileall.compile_dir(".", quiet=report_problem)
Förresten, det finns GothPy på första måndagen varje månad, om du skulle ta sällskap med andra Python-anvândare i Gbg.
Danke. Ich denke, ich werde meine Frage einfach entfernen, da sie versucht, sich in die falsche Richtung zu bewegen. Ich bin ziemlich glücklich mit meiner kleinen for-Schleife. Und GothPy klingt nett. Wo trefft ihr euch? – Macke