我有一个名为my_code.py
的Python脚本.我正在使用:
import pylint
pylint.run_pylint(argv=["my_code.py"])
在上面的代码片段中,如何获取所有错误并将它们存储在list中?
我有一个名为my_code.py
的Python脚本.我正在使用:
import pylint
pylint.run_pylint(argv=["my_code.py"])
在上面的代码片段中,如何获取所有错误并将它们存储在list中?
受this answer的启发,一种方法是获得json
报告并迭代它.
import json
from io import StringIO
from pylint.lint import Run
from pylint.reporters import JSONReporter
reporter = StringIO()
Run(["my_code.py"], reporter=JSONReporter(reporter), do_exit=False)
results = json.loads(reporter.getvalue())
errors = {}
for i in results:
errors[i.get('message-id')] = i.get('message')
for k, v in errors.items():
print(k, v)
这将打印每个错误代码和相应的消息.
例如,如果您有my_code.py
,如下所示:
def foo(l: List[int]) -> List[int]:
return l[1:]
然后,在运行我的解决方案后,您将获得:
C0304 Final newline missing
C0114 Missing module docstring
C0116 Missing function or method docstring
C0104 Disallowed name "foo"
C0103 Argument name "l" doesn't conform to snake_case naming style
E0602 Undefined variable 'List'