如何验证Python脚本的语法?

时间:2016-03-04 12:41:25

标签: python python-2.7 validation syntax-error

我只是希望我的Python脚本能够以最简单的方式询问“我刚刚生成语法上有效的Python的Python代码吗?”

我试过了:

try:  
    import py_compile  
    x = py_compile.compile(generatedScriptPath, doraise=True)  
    pass  

except py_compile.PyCompileError, e:
    print str(e)
    pass

但即使文件包含无效的Python,也不会抛出异常,之后会x == None

1 个答案:

答案 0 :(得分:3)

无需使用py_compile。它的目的是从给定的源文件中写一个字节码文件。事实上,如果您没有在目录中写入的权限,它将失败,因此您可能会得到一些误报。

要解析,从而验证语法,您可以使用ast模块parse文件的内容,或直接调用compile内置函数。< / p>

generate_large_xml()

确保执行该文件,因为如果您不能信任其内容(如果您甚至不知道该文件是否包含有效语法,我怀疑您实际上可以信任该内容,即使你生成了它们)你最终可能会执行恶意代码。