2017-10-05 17 views
0

に変換私はキャッチpy_compile.PyCompileError、および文字列

#!/usr/bin/python 
import py_compile 
try: 
    py_compile.compile("answer.py") 
except py_compile.PyCompileError as e: 
    print(e) 

の答えのように見えますtest.pyというスクリプトを持っているPythonスクリプトをコンパイルし、構文エラーに

を記録しようとしています。 pyはprint something以外の何もしない単なる自己完結型のスクリプトです(今のところ)

私はまた、test.pyを実行するphpファイル内にphp execコマンドを持っています。問題はphp execが返されませんanything by

print(e)

ここでPyCompileErrorのeが文字列ではないか、またはフォーマットに奇妙なものがあるので、結果は単に空に戻ってしまうだけです。私はそれを周りに遊んだとき、それは文字列に変換する方法がわからないオブジェクトのようです。

私はprint("You have errors")のような文字列にeを変更すると文字列に入れようとしましたが、正しく動作しません。正しい出力が得られるので、私のPHPではありませんが、私はそれを考え出したこの

+0

「py_compile.compile()」のドキュメントを再度読んでください。ヒント: 'doraise' –

+0

この疑問は絶対に気にしないでください。単にprint(e.exc_value)、py_compileのドキュメントがうまくいかないので、それを理解するのにかなり時間がかかりました。また、私はそのコメントを見て、私はレイズしようとしましたが、PyCompileErrorのどの値が印刷されたのか分かりませんでした。私はそれがmsgであると思っていましたが、そうではありません。 – 5Ermacs

答えて

0

用)(コンパイル使用する必要がある場合であってもわからない、基本的に私は人々が私は怠け者と読んでいなかったと思う前に私が最初にdoraise=Trueを持っていなかった、その後=真とdoraiseがprint(e.exc_value)

を得る必要私はexc_valueがメッセージを持っていた変数(私はe.msgを取得しようとしていた)であることを認識していませんでしたので、デフォルトでは標準エラー出力になっていたのでオフにしました。そこから。

無視してください。

関連する問題