2016-04-26 6 views
8

मेरे पास सारे अजगर फ़ाइलों के लिए Pylint को चलाने के लिए कैसेएक निर्देशिका

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

और

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

अगर मैं सही ढंग से समझ, पहली आदेश अजगर फ़ाइलों से प्रत्येक के लिए pylint चलेंगे, दूसरा फाइल सभी फाइलों के लिए एक बार पिलिंट चलाएगा। मुझे उम्मीद थी कि दोनों आदेश एक ही आउटपुट लौटाएंगे, लेकिन वे अलग-अलग परिणाम लौटाएंगे। मुझे लगता है कि यह diff किसी भी तरह से आयात और एफ (विफलता) पिलिंट संदेशों से संबंधित है, जो तब होता है जब आयात विफल हो जाता है और आउटपुट pylint -E द्वारा आउटपुट नहीं होता है।

क्या किसी ने पहले ही इसका अनुभव किया है और यह समझा सकता है कि अंतर क्यों होता है और पिलिंट चलाने का सबसे अच्छा तरीका क्या है?

उत्तर

15

मेरे एक प्रतिशत

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

यह कैसे काम करता है?

find सभी फाइलों xargs प्रत्येक फ़ाइल पर pylint आदेश चलाता पाता py साथ समाप्त होता है और xargs के पास,।

नोट: आप pylint कमांड पर भी कोई तर्क दे सकते हैं।

संपादित करें:

doc के अनुसार हम उपयोग कर सकते हैं

[1] pylint mymodule.py

[2] pylint निर्देशिका/mymodule.py

[2] अगर काम करेंगे निर्देशिका एक पायथन पैकेज है (यानी __init__.py फ़ाइल है या यह एक अंतर्निहित नेमस्पेस पैकेज है) या यदि "निर्देशिका" पायथन पथ में है।

+10

यह भयानक है। कोई पिलिंट-केंद्रित समाधान नहीं है? – dopatraman

0

बस निर्देशिका नाम को pylint आदेश पर पास करें। ./server में सभी फ़ाइलों को लिंट करने के लिए:

pylint server 
संबंधित मुद्दे