2013-02-13 5 views
1

Использую пилингу для проверки ошибки. Мои коды python в каталоге и этот каталог содержат много других подпапок и файлов. Я проверяю рекурсивно, что все файлы папок заканчиваются на .py. Он работает нормально.Pylint не работает как ожидалось

Моя проблема в том, когда я запускаю скрипт в основном каталоге, только первый файл python получает отчет надлежащим образом. второй и четвертый не работают вообще. pylint, говорящий

************* Module test.py 
    F: 1: No module named test.py 
    *************** 
Global evaluation 
----------------- 
Your code has been rated at 0.00/10 (previous run: 0.00/10) 

Всякий раз, когда я запускаю свой скрипт в основной директории, только первый отчет файла является правильным. pylint не проверяет ни один из других файлов. (у меня почти 50 файлов python в подкаталогах).

Ниже мой код: - [версия: -Python 2.7.2+]

""" 
Automated error handling using pylint 
1. pylint --generate-rcfile > pylintrc 

""" 

import sys 
import os 

if __name__ == '__main__' : 
    if len(sys.argv) > 1: 
     os.system(">output.txt") 
     for r, d, f in os.walk(sys.argv[1]): 
      for files in f: 
       if files.endswith(".py"): 
        os.system("pylint %s >> output.txt" % files) 
    else: 
     os.system(">output.txt") 
     for r, d, f in os.walk('.'): 
      for files in f: 
       if files.endswith(".py"): 
        os.system("pylint %s >> output.txt" % files) 

, как получить все (почти 50 файлов) файл отчета правильно, с из существующих после первого файла-отчета. это правильный способ сделать это? , Заранее спасибо.

+1

Какая команда вы используете для запуска pylint? – 2013-02-13 04:16:17

+0

am прямо работает os.system для запуска pylint –

+0

Майк, пожалуйста, исправьте меня, если мое понимание pylint неверно –

ответ

1

Вам необходимо пройти полный путь к pylint в командной строке, т.е.

for filename in f: 
    if filename.endswith(".py"):      
     os.system("pylint %s >> output.txt" % os.path.join(r, filename)) 

И вы не получите очень хорошие оценки pylint по этому сценарию, если не использовать осмысленные имена переменных :-)

+0

bah ... Не видел ответа, указанного в комментариях ... –