`运行()` 和 `py_run` 之间的区别以及 Pylint 中 `b.py` 中 `try except` 块的使用
Difference between `Run()` and `py_run` and the use of `try except` block in `b.py` in Pylint
这是我的代码:
# 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
语句之后未执行任何操作,因此未执行 print 语句。但是,如果我在其中添加一个 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')
还有另一种方法 运行 pylint 来自 python 程序的文件:
# 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
,因为它已经解决了我的 运行ning pylint 问题。但是 a.py
更通用,除了 运行 之外,还可以传递各种参数 pylint 文件。为什么 b.py
需要一个 try except
块而 c.py
不需要执行打印命令?
这是因为 Run class 在其 __init__
方法中使用了 sys.exit
。您可以传递 do_exit=False
参数,例如 pl.Run(pylint_opts, do_exit=False)
以使 a.py
像您希望的那样工作:在 运行 pylint 之后打印。
这是我的代码:
# 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
语句之后未执行任何操作,因此未执行 print 语句。但是,如果我在其中添加一个 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')
还有另一种方法 运行 pylint 来自 python 程序的文件:
# 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
,因为它已经解决了我的 运行ning pylint 问题。但是 a.py
更通用,除了 运行 之外,还可以传递各种参数 pylint 文件。为什么 b.py
需要一个 try except
块而 c.py
不需要执行打印命令?
这是因为 Run class 在其 __init__
方法中使用了 sys.exit
。您可以传递 do_exit=False
参数,例如 pl.Run(pylint_opts, do_exit=False)
以使 a.py
像您希望的那样工作:在 运行 pylint 之后打印。