2016-04-26 59 views
8

我已经运行pylint的所有Python文件如何在目录

find . -iname "*.py" -exec pylint -E {} ;\ 

FILES=$(find . -iname "*.py") 
pylint -E $FILES 

如果我理解正确的,第一个命令将运行pylint的每个Python文件中,第二个将为所有文件运行一次pylint。我预计这两个命令会返回相同的输出,但它们会返回不同的结果。我认为这种差异与进口和F(失败)pylint消息有某种关系,当导入失败时,会发生这种情况,并且而不是通过pylint -E输出。

有人已经遇到过这个问题,可以解释diff为什么会发生,以及运行pylint的最佳方式是什么?

回答

15

我一分钱

find . -iname "*.py" | xargs pylint 

它是如何工作的?

find找到的所有文件py结束,并传递给xargsxargs运行在每个文件pylint命令。

注意:您也可以给pylint命令提供任何参数。

编辑:

根据doc我们可以使用

[1] pylint的mymodule.py

[2] pylint的目录/ mymodule.py

[2]将工作,如果目录是一个python包(即有一个__init__.py文件,或者它是一个隐式命名空间包),或者如果“目录”在python路径中。

+10

这太可怕了。有没有以pylint为中心的解决方案? – dopatraman

0

只需将目录名称传递给pylint命令。要将所有文件夹在./server中:

pylint server