python代码风格

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, PIPE

def 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 pep8

python_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,这样就能在客户端检查代码,将结果发送到服务端了

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值