【问题标题】:Pylint: read from stdin?Pylint:从标准输入读取?
【发布时间】:2015-01-09 14:23:13
【问题描述】:

有没有办法指示pylint 从标准输入读取输入?

概要字符串表明文件参数不是强制性的:

pylint [ OPTIONS ] [ <arguments> ]

但是在没有非选项参数的情况下调用时,它会打印

Usage: pylint [options] module_or_package

而且文档没有在任何地方提到标准输入。

这看起来不像命令行风格...

【问题讨论】:

  • 所以你想直接在pylint中输入Python代码?为什么?
  • pylint是静态代码分析器,不考虑输入输出
  • 不,没有。但也许你可以在调用它之前将你发送到它的标准输入的内容重定向到一个文件。
  • @jonrsharpe:我想在文件的过去修订版上运行pylint。在执行此操作的脚本中,我可以将过去的修订签出到临时位置。我的问题是这是否有必要。

标签: python stdin pylint


【解决方案1】:

Pylint 2.4 开始,您可以向 Pylint 提供额外的 --from-stdin 参数。

【讨论】:

  • 你还需要一个名字,所以完整的命令是echo $code | pylint --from-stdin anyname
【解决方案2】:

目前没有办法这样做。您可以通过创建问题https://bitbucket.org/logilab/pylint/issues 来请求该功能,或者更好的是,提供一个拉取请求来实现它。

【讨论】:

  • 有人提供了包含所需功能的a PR。从 Pylint 2.4 开始,您可以向 Pylint 提供额外的 --from-stdin 参数。见my answer
【解决方案3】:

在 linux/unix/OSX 上你可以这样做

pylint [options] /dev/stdin

从标准输入读取pylint

【讨论】:

  • 这不起作用。 Pylint 在文件参数上调用 _llseak(),但在 /dev/stdin 上失败。 $ 回声'x' | pylint /dev/stdin [...] IOError: [Errno 29] Illegal seek
  • 嗯,我在 python 3.4.3 下使用 pylint 1.4.3,它对我有用。
  • python 2.7.9 下的 pylint 1.4.3 也可以正常工作,所以这不是 python 2/3 问题。
猜你喜欢
  • 2013-03-30
  • 2012-02-17
  • 2015-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-25
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多