python flake8 代码扫描
一、介绍
Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,flake8是下面三个工具的封装:
- PyFlakes
- Pep8
- NedBatchelder’s McCabe script
Flake8通过启动单独的flake8脚本运行所有工具,它在一个Per文件中显示告警,合并到输出中。
也增加一些特征:
- 包含这行文件将被忽略:#flake8: noqa
- 结尾包含#noqa注释的行将不发布告警
- GIT和Mercurial钩子
- McCabe复杂度检查器
- 可以通过flake8.extension入口点扩展
安装:pip install flake8
二、使用
1、检查指定目录下的文件(包括这个目录的所有子文件)
例如:我们有一个目录Zbj_project,如果我想检查这个目录下的所有文件是否规范:(在命令行中使用[即windows的cmd下])
flake8 Zbj_project
2、如果你只想检查这些文件的特定的错误类型(e.g., E123)
flake8 --select E123 Zbj_project
3、如果需要选择以特定类型开头的错误码,eg:以E开头
flake8 --select E Zbj_project
如果需要选择多个特定错误码用逗号隔开就可以了
4、忽略特定错误码
静态代码检查忽略H233类型错误
flake8 --ignore H233 Zbj_prioject
5、忽略特定文件/文件夹
静态代码检查忽略test2.py文件
flake8 --exclude Zbj_project/path/test.py Zbj_project
6、关于Flake8更多命令参考
flake8 –-help
7、Flake8的小插件
Flake8相比其他Python静态代码检查工具的优势在于其良好的扩展性,以下是介绍Flake8几款比较流行的插件:
1.hacking
插件安装
pip install hacking
hackinghacking插件安装完成之后,会新增一类错误返回码以H开头:H***:hacking返回的错误类型。
在hacking中有些错误类型检测是默认关闭的,可以通过命令行或者配置文件修改开关:enable-extensions= H106,H203
2.pep8-naming
针对目前pep8尚未支持命名规范的检查,有人开发出了此款插件作为规则补充。
pep8-naming插件安装完成之后,会新增一类错误返回码以N开头:N***: pep8-naming返回的错误类型。
安装
pip install pep8-naming
8、在Jenkins上分析flake8的报告
在Flake8上安装插件,flake8-junit-report将flake8的报告转换为junit format
1.安装flake8-junit-report
pip install flake8-junit-report
2.输出Flake8测试报告
flake8 --output-file flake8.txt shadowtest
3.转换成junit测试结果的xml
python -m junit_conversor flake8.txt flake8_junit.xml
python flake8 代码扫描的更多相关文章
- 收藏清单: python测试数据生成及代码扫描最全工具列表
Test Data manipulation 测试数据的操作和处理 faker - 生成假数据的python库 fake2db - 创建假数据库 ForgeryPy - 使用起来很简单的假数据生成库. ...
- Python静态代码检查工具Flake8
简介 Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强.Flake8是对 ...
- 使用jenkins+sonar进行代码扫描,并发送自定义邮件
jenkins架构 1.一台机器作为jenkins master不进行构建操作,只负责调度其他slave节点执行任务 2.一台slave机器作为执行机器存放从gitlab上拉取的代码,使用sonar- ...
- DEVOPS技术实践_05:sonar静态代码扫描
一.SonarQube静态代码扫描平台 1.1 安装 https://www.sonarqube.org/官网 1.2 下载软件包 https://www.sonarqube.org/download ...
- 持续集成工具之jenkins+sonarqube做代码扫描
上一篇我们主要聊了下代码质量管理平台sonarqube的安装部署以及它的工作方式做了简单的描述和代码扫描演示:回顾请参考https://www.cnblogs.com/qiuhom-1874/p/13 ...
- SonarQube+jenkins-自动化持续代码扫描
SonarQube+jenkins-自动化持续代码扫描 1.SonarQube 1.1 SonarQube介绍 1.1.1 SonarQube 工作流程 1. 2 Docker方式安装SonarQub ...
- 代码扫描利器sonarqube
sonar的作用 1.代码质量和安全扫描和分析平台. 2.多维度分析代码:代码量.安全隐患.编写规范隐患.重复度.复杂度.代码增量.测试覆盖率等. 3.支持25+编程语言的代码扫描口分析,包含java ...
- Python一行代码
1:Python一行代码画出爱心 print]+(y*-)**-(x**(y*<= ,)]),-,-)]) 2:终端路径切换到某文件夹下,键入: python -m SimpleHTTPServ ...
- python爬虫代码
原创python爬虫代码 主要用到urllib2.BeautifulSoup模块 #encoding=utf-8 import re import requests import urllib2 im ...
随机推荐
- 【非原创】codeforces 1060E Sergey and Subway 【树上任意两点距离和】
学习博客:戳这里 本人代码: 1 #include <bits/stdc++.h> 2 using namespace std; 3 typedef long long ll; 4 con ...
- 按层次顺序创建二叉树;判断BST
https://github.com/TouwaErioH/subjects/tree/master/C%2B%2B/PA2 BST 假设已经给定树节点的结构不可修改. 然后输入是按照层次顺序 怎样创 ...
- universities
- 涂颜色的RPG问题
长度为n的方格,刷3种颜色的颜料,相邻的方格颜料颜色不能相同,且首尾方格颜色不能相同.每个方格必须涂色.计算一共有多少种涂色方式. 解题思路:(1)f(1)=3,f(2)=6,f(3)=6 (2)如果 ...
- Docker--Image and Container
2.1 深入探讨Image 说白了,image就是由一层一层的layer组成的. 2.1.1 官方image https://github.com/docker-library mysql http ...
- 攻防世界-Web-lottery(.git泄露、php源码审计、弱类型利用)
扫描目录,发现.git泄露: 提取.git泄露的源码,得到许多文件: 网站这里: 这就要审计一下代码,找找漏洞了. 经过一番审计,猜数字对应的函数在api.php中: 我们要绕过这个$win_numb ...
- cache-control config & http cache storage location control
cache-control config & http cache storage location control cache-control 设置 where is the storage ...
- CSS BEM
CSS BEM Block, Element, Modifier https://en.bem.info/methodology/quick-start/ BEM /* Block component ...
- ORM & sequelize
ORM Object Relational Mapping 对象关系映射 Table => Object, 简化 SQL 查询命令的编写 https://en.wikipedia.org/wik ...
- nasm astrcpy_s函数 x86
xxx.asm %define p1 ebp+8 %define p2 ebp+12 %define p3 ebp+16 section .text global dllmain export ast ...