python - `Run()` 和 `py_run` 之间的区别以及在 Pylint 中的 `b.py` 中使用 `try except` 块
问题描述
这是我的代码:
# uses Python3.7
# a.py
from pylint import lint as pl
pathvar = 'test.py'
pylint_opts = [pathvar]
pl.Run(pylint_opts)
print('New Text File Here')
这段代码给了我正确的输出,但在语句之后不执行任何东西Run
,因此不执行打印语句。但是,如果我在其中添加一个try except
块,它运行良好。
# uses Python3.7
# b.py
from pylint import lint as pl
try:
pathvar = 'test.py'
pylint_opts = [pathvar]
pl.Run(pylint_opts)
except:
pass
print('New Text File Here')
还有另一种方法可以在 python 程序的文件上运行 pylint:
# uses Python3.7
# c.py
from pylint import epylint as lint
pathvar = 'test.py'
lint.py_run(pathvar)
print('New Text File Here')
这个执行py_run
然后打印正确的输出。我知道您可能会建议我应该使用c.py
它,因为它已经解决了我运行 pylint 的问题。但是 a.py
更通用,除了运行 pylint 文件之外,还可以传递各种参数。为什么b.py
需要一个try except
块c.py
而不执行打印命令?
解决方案
这是因为Run类sys.exit
在其__init__
方法中使用。您可以传递do_exit=False
参数,如pl.Run(pylint_opts, do_exit=False)
使a.py
工作如您所愿:运行 pylint 后打印。