python - 如何判断一个字符串是否包含有效的 Python 代码

标签 python syntax python-3.x

如果我有一个 Python 代码字符串,我如何判断它是否有效,即,如果在 Python 提示符下输入,它会引发 SyntaxError 与否?我认为使用 compiler.parse 会起作用,但显然该模块已在 Python 3 中删除。有没有办法在 Python 3 中也适用。显然,我不想执行代码,只需检查其语法即可。

最佳答案

使用 ast.parse :

import ast
def is_valid_python(code):
   try:
       ast.parse(code)
   except SyntaxError:
       return False
   return True

>>> is_valid_python('1 // 2')
True
>>> is_valid_python('1 /// 2')
False

关于python - 如何判断一个字符串是否包含有效的 Python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11854745/

相关文章:

c++ - 写入数组时出现段错误

python-3.x - 属性错误 : 'CRF' object has no attribute 'keep_tempfiles'

python - 如何将以下 if 语句转换为更有效的嵌套 for 循环

python - 如何隐藏按钮 "Create invoice"但基于条件? (奥杜11)

python - 尝试在 Python 中设置一个 html 弹出窗口,使用 folium 来适应图像大小

python - 查找列表中最常见的元素

python - 在 python 函数中定义常量的最佳方式

syntax - 不了解 SICP 中的方案程序

java - Java 中 ArrayList 声明中的奇怪语法

python - 无法在 FOR 循环 Python 中解压元组对象