Bash-如何捕获Python3语法错误
我有一个无头的硬件,可以远程更新 硬件只在引导时运行python脚本。 我正在努力提高这个更新系统的健壮性 如果我要用一个有缺陷的python脚本更新硬件(例如拼写错误的Bash-如何捕获Python3语法错误,python,bash,python-3.x,Python,Bash,Python 3.x,我有一个无头的硬件,可以远程更新 硬件只在引导时运行python脚本。 我正在努力提高这个更新系统的健壮性 如果我要用一个有缺陷的python脚本更新硬件(例如拼写错误的print或return(这种情况经常发生!)或缺少冒号),那么python解释器会拒绝运行它,因为它会先解析整个脚本 在这个“解析”中,它将返回一个语法错误。我怎样才能捕捉到这一点并执行不同的操作?您可以使用execfile制作一个包装器脚本来捕捉SyntaxError,如: try: execfile('/path/t
print
或return
(这种情况经常发生!)或缺少冒号),那么python解释器会拒绝运行它,因为它会先解析整个脚本
在这个“解析”中,它将返回一个语法错误。我怎样才能捕捉到这一点并执行不同的操作?您可以使用
execfile
制作一个包装器脚本来捕捉SyntaxError
,如:
try:
execfile('/path/to/script.py')
except SyntaxError:
# do the other thing
您可以执行
python foo.py 2>&1|grep“SyntaxError:
(因为返回代码在这方面对您没有帮助:它是1,语法无效),依赖grep
返回代码,依赖PIPESTATUS
脚本返回代码我建议使用python linter(pep8)因此,您可以始终确保没有语法错误。您还可以尝试编译代码()并为代码编写测试,从修复部署过程开始,不要浪费时间来解决其缺陷。