gpt4 book ai didi

python - 运行Python代码时如何从Pylint获取报告+分数?

转载 作者:行者123 更新时间:2023-12-04 15:45:15 28 4
gpt4 key购买 nike

直接从 Python 代码运行 pylint 时,我似乎无法获得任何返回值。从命令行运行它会生成一个漂亮的报告,在底部有一个总结分数。

我已经尝试将“Run”的返回值放入一个变量中,并获取它的“reports”字段 - 但它看起来像一些默认模板。

这是我的:

from io import StringIO
from pylint.reporters import text
from pylint.lint import Run


def main():
print("I will verify you build!")
pylint_opts = ['--rcfile=pylintrc.txt', '--reports=n', 'utilities']
pylint_output = StringIO()
reporter = text.TextReporter(pylint_output)
Run(pylint_opts, reporter=reporter, do_exit=False)
print(pylint_output.read())


if __name__ == '__main__':
main()

我希望这里有一些报告,但我得到的只是:“我会验证你的构建!

进程结束,退出代码为 0"

最佳答案

我调查了 pylint 问题。我们最终保持当前行为,因为您的代码稍作调整即可工作:

def main():
print("I will verify you build!")
pylint_opts = ['--rcfile=pylintrc.txt', '--reports=n', 'utilities']
pylint_output = StringIO()
reporter = text.TextReporter(pylint_output)
Run(pylint_opts, reporter=reporter, do_exit=False)
print(pylint_output.getvalue())

StringIO是一个不隐藏流位置的流。 Pylint 正确写入 pylint_output,但将光标留在流的末尾。 pylint_output.read() 仅从光标处开始读取。

您可以在调用 pylint_output.read() 之前调用 pylint_output.seek(0) 重置流位置。或者,如上面的代码块所示,StringIO 提供了一个方法 getvalue,无论光标位置如何,该方法都会返回缓冲区的全部内容。

Pylint 文档将使用此示例进行更新,因此感谢您提出它。

关于python - 运行Python代码时如何从Pylint获取报告+分数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56081299/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com