Flake8 是由Python官方发布的一款辅助检测Python代码是否规范的工具,相对于目前热度比较高的Pylint来说,Flake8检查规则灵活,支持集成额外插件,扩展性强。

Flake8 是“将 PEP 8、Pyflakes(类似 Pylint)、McCabe(代码复杂性检查器)和第三方插件整合到一起,以检查 Python 代码风格和质量的一个 Python 工具”。与pyLint的功能一样,用于对代码的静态检测。

执行 pip install flake8 安装 flake8 ,然后执行 flake8 [options] path/to/dir 或者 flake8 [options] path/to/module.py 可以查看报出的错误和警告。

和 Pylint 类似,Flake8 允许通过配置文件来自定义检查的内容。它有非常清晰的文档,包括一些有用的提交钩子,可以将自动检查代码纳入到开发工作流程之中。

Flake8 也可以集成到一些流行的编辑器和 IDE 当中,但在文档中并没有详细说明。要将 Flake8 集成到喜欢的编辑器或 IDE 中,可以搜索插件(例如 Sublime Text 的 Flake8 插件)。

(BlogChecker) D:\pyve\BlogChecker>flake8 LinkCheck.py
LinkCheck.py:8:1: F401 'datetime as dt' imported but unused
LinkCheck.py:50:36: W291 trailing whitespace
LinkCheck.py:52:28: W291 trailing whitespace
LinkCheck.py:77:59: W291 trailing whitespace
LinkCheck.py:97:1: W293 blank line contains whitespace
LinkCheck.py:111:67: E712 comparison to False should be 'if cond is False:' or '
if not cond:'
LinkCheck.py:117:18: E712 comparison to False should be 'if cond is False:' or '
if not cond:'
LinkCheck.py:117:27: W291 trailing whitespace
LinkCheck.py:121:1: W293 blank line contains whitespace
LinkCheck.py:138:52: W291 trailing whitespace
LinkCheck.py:139:46: E231 missing whitespace after ':'
LinkCheck.py:154:9: E265 block comment should start with '# '
LinkCheck.py:155:9: E722 do not use bare except'
LinkCheck.py:162:53: W291 trailing whitespace
LinkCheck.py:169:44: W291 trailing whitespace
LinkCheck.py:174:60: W291 trailing whitespace
LinkCheck.py:175:77: W291 trailing whitespace
LinkCheck.py:176:76: W291 trailing whitespace
LinkCheck.py:193:74: W291 trailing whitespace
LinkCheck.py:209:13: W291 trailing whitespace
LinkCheck.py:210:51: W291 trailing whitespace
LinkCheck.py:211:25: E127 continuation line over-indented for visual indent
LinkCheck.py:211:47: W291 trailing whitespace
LinkCheck.py:212:25: E127 continuation line over-indented for visual indent
LinkCheck.py:212:46: E231 missing whitespace after ':'
LinkCheck.py:213:9: E722 do not use bare except'
LinkCheck.py:218:1: W293 blank line contains whitespace
LinkCheck.py:225:59: W291 trailing whitespace
LinkCheck.py:233:54: W291 trailing whitespace
LinkCheck.py:234:33: E128 continuation line under-indented for visual indent
LinkCheck.py:234:56: W291 trailing whitespace
LinkCheck.py:235:33: E128 continuation line under-indented for visual indent
LinkCheck.py:238:51: W291 trailing whitespace
LinkCheck.py:239:33: E128 continuation line under-indented for visual indent
LinkCheck.py:239:56: W291 trailing whitespace
LinkCheck.py:240:33: E128 continuation line under-indented for visual indent
LinkCheck.py:244:52: W291 trailing whitespace
LinkCheck.py:245:33: E128 continuation line under-indented for visual indent
LinkCheck.py:245:56: W291 trailing whitespace
LinkCheck.py:246:33: E128 continuation line under-indented for visual indent
LinkCheck.py:248:17: E265 block comment should start with '# '
LinkCheck.py:249:61: W291 trailing whitespace
LinkCheck.py:253:55: W291 trailing whitespace
LinkCheck.py:254:33: E128 continuation line under-indented for visual indent
LinkCheck.py:254:56: W291 trailing whitespace
LinkCheck.py:255:33: E128 continuation line under-indented for visual indent
LinkCheck.py:257:13: E265 block comment should start with '# '
LinkCheck.py:266:1: W293 blank line contains whitespace
LinkCheck.py:274:1: W293 blank line contains whitespace
LinkCheck.py:286:1: W293 blank line contains whitespace
LinkCheck.py:290:1: W293 blank line contains whitespace
LinkCheck.py:306:1: W293 blank line contains whitespace
LinkCheck.py:310:1: W293 blank line contains whitespace
LinkCheck.py:322:80: E501 line too long (144 > 79 characters)
LinkCheck.py:323:28: W291 trailing whitespace
LinkCheck.py:324:1: W293 blank line contains whitespace
LinkCheck.py:325:80: E501 line too long (87 > 79 characters)
LinkCheck.py:327:8: W291 trailing whitespace
LinkCheck.py:334:34: W291 trailing whitespace
LinkCheck.py:336:1: W293 blank line contains whitespace
LinkCheck.py:352:9: E265 block comment should start with '# '
LinkCheck.py:353:9: E265 block comment should start with '# '
LinkCheck.py:357:16: W292 no newline at end of file

不管是pyLint还是Flake8,我觉得都需要做适当的配置,才能适用特定的项目。

pyLink和Flake8检查出来的结果会稍有不同,pyLink默认太在意函数和变量以及类的命名,给我的代码爆出一大堆warning。但是,通过阅读PEP-0008,我的理解是,有好几种不同的命名规则供选择适用,并没有强制哪一种必须用在什么地方。这一点Flake8做的比较好,默认情况下,不会对我的命名“提出异议”。

建议使用这个flake8命令,忽略掉两个蛋疼的warning:flake8 --ignore W291,W293 yourPython.py

Flake8的说明文档:https://flake8.readthedocs.io

除了单独检查一个py文件,Flake8还可以检查一个文件夹里面所有的文件:

flake8 path/to/code/to/check.py
# or
flake8 path/to/code/

检测Python代码规范--Flake8相关推荐

  1. python代码规范工具_Python代码规范Flake8的简单示例

    这篇文章主要为大家详细介绍了Python代码规范Flake8的简单示例,具有一定的参考价值,可以用来参考一下. 对python这个高级语言感兴趣的小伙伴,下面一起跟随512笔记的小编两巴掌来看看吧! ...

  2. Python 代码规范

    前言 Python 学习之旅,先来看看 Python 的代码规范,让自己先有个意识,而且在往后的学习中慢慢养成习惯 目录 Python代码规范 一.简明概述 1.编码 如无特殊情况, 文件一律使用 U ...

  3. Python代码规范和命名规范

    http://www.imooc.com/article/19184?block_id=tuijian_wz#child_5_1 Python代码规范和命名规范 前言 Python 学习之旅,先来看看 ...

  4. python代码规范链接

    python代码规范 https://zh-google-styleguide.readthedocs.io/en/latest/google-python-styleguide/python_sty ...

  5. 检测样本分布是不是正态分布,绘制其正态分布概率图及异常值检测-python代码实现

    根据一份正态分布数据绘制正态分布概率图及异常值检测-python代码实现 当我们拿到一份数据时,想要检测数据概率分布是不是正太分布,一个好的方法是绘制其概率图 这里我们根据自制的数据首先生成一份正太分 ...

  6. python代码规范_合格搬砖工

    python代码规范 采用PEP8规范 1.#注释:对代码进行注解说明 位置:正上方,正后方 pycharm快捷键:Ctrl+/ 2.'''多行注释''' 位置:加在文件开头,对文件进行整体说明 3. ...

  7. Python代码规范:代码规范整改和编码技巧-flake8扫描问题整改

    为了修正flake8扫描出的问题,需要按照以下步骤进行: 1. 分类问题:首先需要对扫描得到的问题进行分类,以便更好地理解和解决它们.例如: - 代码格式问题(如缩进不正确.行长度超过限制等) - 变 ...

  8. python代码规范工具_如何检查python3中的代码规范

    如何检查python3中的代码规范 发布时间:2020-11-16 09:40:48 来源:亿速云 阅读:77 作者:小新 这篇文章给大家分享的是有关如何检查python3中的代码规范的内容.小编觉得 ...

  9. google python代码规范_如何用好python编码规范,写一手漂亮的代码

    前一段时间在编写python 代码的时候编辑器中一直在提示规范问题,因为强迫症的原因,我决定遵循python 的编码规范去编码,然后把需要注意的点记录下来, 帮助自己和大家一起成长. 这是我的main ...

最新文章

  1. Caffe框架GPU与MLU计算结果不一致请问如何调试?
  2. 内网***测试定位技术总结
  3. 解决SqlTransaction用尽的问题
  4. 全国“最高”的视觉竞赛,华为Atlas打通遥感图像智能分析任督二脉
  5. 自百度2012吧——这些都是巧合吗
  6. 39、自定义控件(四)-- View源码分析
  7. 还在用Excel做数据分析?两大方法5分钟完成别人一天的工作
  8. 反爬虫机制和破解方法汇总
  9. PHP|Yii2下通过插件进行图片处理(亲测可用)
  10. 【tool】kali linux关于postgresql的使用
  11. Python网络爬虫系列(一)
  12. BM:正在研究NFT新用例
  13. 产品研发过程管理专题——软件项目范围变更流程与过程控制研究
  14. WINDOWS搜索dll的路径顺序
  15. 服务器支持vrrp,【交换机在江湖对接案例】配置VRRP备份组对接NLB服务器群集示例(通过物理链路环回方法)...
  16. java 操作mdb文件_Java操作MDB文件
  17. hash算法_Win10_64 默认应用的UserChoice Hash算法学习
  18. C语言代码绘制,利用数组输出 0-2Π之间的 sin 函数图像和 cos 函数图像,实验报告及代码。
  19. C++ QQ游戏 连连看外挂 内存挂入门
  20. mysql:Prepared statement needs to be re-prepared解决办法

热门文章

  1. windows中,页面编码集一览 (chcp code)
  2. Office 自定义安装
  3. Unity之QTE快速反应事件
  4. win2003系统服务优化
  5. 初始化css样式代码、颜色、字体、浮动与清除浮动、显示、定位、盒子模型、按钮禁用、CSS画圆半圆扇形三角梯形
  6. 彻底理解非阻塞IO(NIO)
  7. js获取年月日 时分秒的日期格式
  8. JavaScript小技能:事件
  9. iphone麦克风_如何从iPhone键盘上删除麦克风按钮
  10. root用户和文件权限