pep8:Python代码风格检查工具

Python官网定义的代码风格 PEP 0008 – Style Guide for Python Code。

pep8是检测编码风格是否符合 PEP 0008 的工具。

安装pep8:

pip install pep8

升级pep8:

pip install --upgrade pep8

卸载pep8:

pip uninstall pep8

如果使用的是Ubuntu,还可以使用从apt仓库中安装:

$ sudo apt-get install pep8

使用示例

故意写几行不符合Python编码风格的代码(test.py):

import sys, os
from subprocess import Popen, PIPEdef long_function_name(var_one, var_two, var_three,var_four):print(var_one)

检查是否符合编码规范:

$ pep8 --first test.py
test.py:1:11: E401 multiple imports on one line
test.py:4:1: E302 expected 2 blank lines, found 1
test.py:6:5: E125 continuation line with same indent as next logical line

1、4、6行代码不符合规范

你还可以输出不符合规范的代码和原因:

$ pep8 --show-source --show-pep8 test.py

更多选项,查看帮助信息:

$ pep8 -h

使用代码测试(CodeStyle.py):

import pep8python_code_style_checker = pep8.Checker('test.py', show_source=True)
file_errors = python_code_style_checker.check_all()
print("Found %s errors (and warnings)" % file_errors)

参考:https://blog.csdn.net/lucyxu107/article/details/82626123

PyCharm 自动格式化 Python 代码

autopep8 是一个将 Python 代码自动排版为 PEP8 风格的工具,在 PyCharm 中直接格式化代码可以使用 autopep8。

一、autopep8 简介

使用 autopep8 前我们有必要先了解下 PEP 8 – Style Guide for Python Code

https://pypi.python.org/pypi/autopep8/

二、安装和使用 autopep8

autopep8 是一个开源的命令行工具,它能够将 Python 代码自动格式化为 PEP8 风格。autopep8 使用 pycodestyle 工具来决定代码中的哪部分需要被格式化,这能够修复大部分 pycodestyle 工具中报告的排版问题。autopep8 本身也是一个 Python 语言编写的工具,因此,我们可以直接使用 pip 进行安装:

pip install autopep8

我们来看一个完整的例子,本例中使用的代码如下:

import os, sys  def main():  print [item for item in os.listdir('.') if item.endswith('.py')];  print sys.version  if __name__ == '__main__':  main()

这段代码存在三个问题:

  1. 导入的时候,应该每一行只导入一个包;
  2. 包导入和函数定义之间应该空两行;
  3. Python 代码末尾不需要分号。

接下来,我们将使用 pycodestyple 检查这段代码,然后使用 autopep8 将代码格式化成符合 PEP 8 风格的代码。

使用 pycodestyle 检查代码可检测到代码中有三个地方不符合 PEP 8 规范,如下所示:

pycodestyle hello.py
hello.py:1:10: E401 multiple imports on one line
hello.py:3:1: E302 expected 2 blank lines, found 1
hello.py:4:69: E703 statement ends with a semicolon

使用 autopep8 格式能够转换 Python 代码。在这个例子中,autopep8 顺利地帮我们修复了所有问题,如下所示:

$ autopep8 hello.py
import os
import sys  def main():  print [item for item in os.listdir('.') if item.endswith('.py')]  print sys.version  if __name__ == '__main__':  main()

这个时候如果查看源文件的话,会发现还是和原来一样,并没有修正为符合 PEP 8 规范的代码。前面说过,不指定 –in-place 选项,只会将结果输出到命令行。如果我们使用 –in-place 选项,将不会有任何输出,autopep8 会直接修改源文件。

$ autopep8 --in-place hello.py 

三、Pycharm 安装 autopep8

Pycharm 安装 autopep8

pip 安装 autopep8: pip install autopep8

PyCharm -> Preferences -> Tools -> Extends Tools -> 点击 + 加号

Name: autopep8
Tools settings:

Programs: autopep8
Parameters: --in-place --aggressive --aggressive $FilePath$
Working directory: $ProjectFileDir$
Advanced Options -> Output Filters: $FILE_PATH$\:$LINE$\:$COLUMN$\:.*

参考

  1. https://wsgzao.github.io/post/autopep8/
  2. http://lovesoo.org/add-autopep8-to-pycharm.html

参考:https://blog.csdn.net/simplehouse/article/details/90032248

sonarqube工具来测试代码风格

docker 安装sonarqube

docker run -e SONARQUBE_JDBC_USERNAME=root -e SONARQUBE_JDBC_PASSWORD=admin -e SONARQUBE_JDBC_URL='jdbc:mysql://192.168.11.127:30369/sonar?useUnicode=true&characterEncoding=utf8' -p 9000:9000 sonarqube:6.7.5


下载sonar-scanner 在项目文件夹下执行

sonar-scanner   -Dsonar.projectKey=test   -Dsonar.sources=.   -Dsonar.host.url=http://127.0.0.1:9000   -Dsonar.login=6a14734cf871e3ed2d694bbb71dc8fd0b9193d8b

其中Dsonar.host.url为服务端地址,Dsonar.login为登录生成的token,这样就能在客户端检查代码,将结果发送到服务端了

python代码风格相关推荐

  1. Python 代码风格指南谷歌版

    非常感谢我们的忠实读者 shendeguize,在后台留言告诉我,已经翻译了<谷歌Python代码风格指南> ,大家这样相互帮助,感觉真是太好. Update: 2020.01.31 Tr ...

  2. python代码风格指南_记录Python代码:完整指南

    python代码风格指南 Welcome to your complete guide to documenting Python code. Whether you're documenting a ...

  3. PEP8 - Python 代码风格指南中英对照

    PEP8 - Python 代码风格指南中英对照 Introduction A Foolish Consistency is the Hobgoblin of Little Minds Code la ...

  4. Google 内部的 Python 代码风格指南(译)

    微信搜索逆锋起笔关注后回复编程pdf 领取编程大佬们所推荐的 23 种编程资料! 来自:Why GitHub? 链接:https://github.com/shendeguize/GooglePyth ...

  5. Google内部 Python 代码风格指南(中文版)

    文末有干货 "Python高校",马上关注 真爱,请置顶或星标 这是一位大佬翻译的Google Python代码风格指南,很全面.可以作为公司的code review 标准,也可以 ...

  6. 快快快收藏!!Google内部Python代码风格指南(中文版)

    ????????关注后回复 "进群" ,拉你进程序员交流群???????? 来源丨菜鸟学Python 这是一位大佬翻译的Google Python代码风格指南,很全面.可以作为公司 ...

  7. Google Python代码风格指南

    谷歌Python代码风格指南 中文翻译 你好,我是zhenguo 这是关注我的一位粉丝翻译的Google Python代码风格指南,很全面.可以作为公司的code review 标准,也可以作为自己编 ...

  8. python代码风格_Python编码风格,看这篇就够了

    如果有人问起 Python 程序员他们最喜欢 Python 哪一点,他们一定会提到 Python 的高可读性.确实,对于 Python 来说,其高可读性一直是 Python 这门语言设计的核心.一个不 ...

  9. 如何使用 Pylint 来规范 Python 代码风格

    Pylint 是什么 Pylint 是一个 Python 代码分析工具,它分析 Python 代码中的错误,查找不符合代码风格标准(Pylint 默认使用的代码风格是 PEP 8,具体信息,请参阅参考 ...

最新文章

  1. CRNN竞赛程序实现过程
  2. OS开发UI篇—popoverController使用注意
  3. 计算机网络平台实验,计算机网络实验
  4. 面试官都会问的Mybatis面试题,你会这样回答吗?
  5. JavaScript indexOf() 方法 和 lastIndexOf() 方法
  6. c语言烟花百度云,C语言实现放烟花的程序
  7. 1.7Oob 继承关系中构造方法的使用
  8. dfs序 + RMQ = LCA
  9. 第十二天--Property List和NSUserDefaults
  10. 浅谈SCOM Agent的心跳响应机制
  11. 京东淘汰“三类人”,近 18 万员工懵了?!
  12. ubuntu linux 启用root用户登录
  13. Tiff – 比较两种字体差异
  14. 冰点下载器手机版apk_冰点下载器官网
  15. Cassandra启动过程详解
  16. ACCV 2020 最受关注的 Top10 代码开源论文!
  17. iPhone中通过ics来添加农历与天气预报
  18. adams matlab 联仿 5DOF机械臂 建模以及联合仿真
  19. iOS大型项目开发架构
  20. 创面修复医疗器械行业概况及市场规模分析

热门文章

  1. 主进程退出后子进程还会存在吗?_[docker]从一个实例,一窥docker进程管理
  2. 超级计算机能算数学题吗,圆周率到底能不能算尽?人类拿超级计算机算了一下,结果不敢相信...
  3. vue项目中使用lib-flexible解决移动端适配
  4. 【java笔记】大数操作(BigIntegerBigDecimal)
  5. 【java笔记】StringBuilder类
  6. LeetCode 392 判断子序列
  7. 递归处理二叉树总结(附leetcode题)
  8. 开源数字媒体资产管理系统:Razuna安装方法
  9. Media Player Classic - HC 源代码分析 3:核心类 (CMainFrame)(2)
  10. MSU 出品的 H.264 编码器比较 (2011.5)