2016-04-26 47 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