Pylint не работает должным образом

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

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

    ************* 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 в подкаталогах).

Ниже приведен мой код: - [ver: -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 файлов) отчеты о файлах, без существующего отчета после первого файла. это правильный способ сделать это? . Заранее спасибо.


person Confusion_buddy    schedule 13.02.2013    source источник
comment
Какую команду вы используете для запуска pylint?   -  person    schedule 13.02.2013
comment
я напрямую запускаю os.system для запуска pylint   -  person Confusion_buddy    schedule 13.02.2013
comment
Майк, не могли бы вы поправить меня, если мое понимание pylint неверно   -  person Confusion_buddy    schedule 13.02.2013
comment
Возможно, вам придется включить каталог в имя файла, которое вы передаете в pylint, похоже, ваш скрипт не сработает, как только вы начнете погружаться в подкаталоги. Является ли единственный файл, который работает, также единственным файлом .py в папке, из которой вы его запускаете?   -  person Marius    schedule 13.02.2013
comment
Великий Мариус :) ты прав. os.path.join(r, files) теперь работает нормально..   -  person Confusion_buddy    schedule 13.02.2013


Ответы (1)


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

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

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

person gurney alex    schedule 13.02.2013