Python静态代码扫描工具——flake8
Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。Flake8是对下面三个工具的封装:
1)PyFlakes:静态检查Python代码逻辑错误的工具。
2)Pep8: 静态检查PEP8编码风格的工具。
3)NedBatchelder’s McCabe script:静态分析Python代码复杂度的工具。
不光对以上三个工具的封装,Flake8还提供了扩展的开发接口。
官方文档:https://pypi.python.org/pypi/flake8/
一、安装flake8
pip install flake8
可通过flake8 -h来检测是否安装成功
二、使用方法
假设文件结构如下:
1、检查整个项目的代码:
flake8 yzs-pytest
如下,检查结果图:
2、对于一些代码长度的错误我们希望可以忽略他,可以使用如下命令
如果需要选择多个特定错误码用逗号隔开就可以了,eg:错误码1,错误码2
flake8 yzs-pytest --ignore E501
3、可以指定每行代码可接受的长度,默认的长度是79
flake8 yzs-pytest -max-line-length=130
4、统计扫描的问题总数
flake8 yzs-pytest --count
5、扫描指定的py文件的代码
flake8 yzs-pytest/common/get_token.py
6、展示特定的错误
flake8 --select E501 yzs-pytest
如果需要选择以特定类型开头的错误码,eg:以E开头
flake8 --select E yzs-pytest
如果需要选择多个特定错误码用逗号隔开就可以了,eg:错误码1,错误码2
7、忽略特定文件/文件夹
静态代码检查忽略conftest.py文件,设定多个忽略方法同上;也可以指定以某后缀结尾的,eg:.svn,.git等
falke8 --exclude yzs-pytest/conftest.py
8、将检查结果导出(可以指定导出的路径及导出的文件格式,如下我是导出到桌面)
flake8 yzs-pytest --output-file C:\Users\admin\Desktop\scanResult.txt
常用的差不多就这些了吧
关于flake8的更多命令参考:flake8 -h