Pylint未按预期工作

1 投票
1 回答
1944 浏览
提问于 2025-04-17 15:42

我正在使用pylint来检查错误。我的Python代码放在一个文件夹里,这个文件夹里面还有很多其他的子文件夹和文件。我在递归地检查所有以.py结尾的文件,效果还不错。

不过,我遇到的问题是,每次在主文件夹运行脚本时,只有第一个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 个回答

1

你需要在命令行中输入pylint的完整路径,也就是:

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

而且,如果你不使用有意义的变量名,这个脚本的pylint评分不会很好哦 :-)

撰写回答