Zum*_*baa 6 python pylint python-2.7
如何使用 python 代码获取 pylint 错误消息的简要摘要或获取 pylint 错误、警告、重构的数量?
pylint -rn
Run Code Online (Sandbox Code Playgroud)
这允许我们仅通过消息获取 pylint 输出并排除报告。我到目前为止所尝试的是:
lint_arg = "pylint -rn %s"%file_name
pr = subprocess.Popen(
arg, cwd=os.path.dirname(lint_path),
shell=True, stdout=subprocess.PIPE,
stderr=subprocess.PIPE)
(out, error) = pr.communicate()
pylint_result = out + "\n" + error
file=open("pylint_output",w)
file.write(pylint_result)
file.close()
Run Code Online (Sandbox Code Playgroud)
我只想获取发生错误、警告的行数,并将此信息移动到字符串中。我的想法如下:
第 1 步:使用 subprocess.Popen() 在 python 脚本中运行 pylint
第 2 步:将输出存储在文件或变量中。
第 3 步:解析文件并生成如下预期输出:
预期输出:以下文件 <文件名> 有:
5 个警告行号:11, 34 ,56(发生警告的行)
行号 2 个错误(发生错误的行)。
我如何在 pylint 命令的帮助下或使用 python 脚本来做到这一点?任何帮助表示赞赏。提前谢谢。
首先,不要使用Popen, 来引用Pylint 的文档:
要在 module_name.py 模块上静默运行 Pylint,并获取其标准输出和错误:
Run Code Online (Sandbox Code Playgroud)from pylint import epylint as lint (pylint_stdout, pylint_stderr) = lint.py_run('module_name.py', True)
其次,看输出格式,man pylint说:
使用默认的文本输出,消息格式为:
Run Code Online (Sandbox Code Playgroud)MESSAGE_TYPE: LINE_NUM:[OBJECT:] MESSAGE
假设line是一行 Pylint 输出,这应该收集您需要的所有内容:
pylint_res = {'C': [], 'R': [], 'W': [], 'E': [], 'F': []}
msg_type, lineno = line.split(':', 2)[:2]
pylint_res[msg_type].append(lineno)
Run Code Online (Sandbox Code Playgroud)
您需要做的就是迭代 Pylint 的输出,将上面的内容添加到pylint_res,然后打印结果。
| 归档时间: |
|
| 查看次数: |
3347 次 |
| 最近记录: |