自动优化工具Black

在众多代码格式化工具中,Black算是比较新的一个,它***的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让 Black 自己做决定就好。

1).安装与使用

与pylint类似,直接pip install black即可完成该模块的安装,不过black依赖于Python 3.6+,但它仍然可以格式化Python2的代码。

在使用方面black默认读取指定python文件并对其进行代码规范格式化,然后输出到原文件。

  1. l = [1,
  2. 2,
  3. 3,
  4. ]

例如,我们将上面这段代码保存为test.py,然后在控制台执行 black test.py 指令,再次打开test.py,发现其中的代码变成了这个样子:

  1. l = [1, 2, 3]

当然,Black的封装程度再高也是有自定义配置项的,例如使用--version查看版本、使用--help查看帮助信息、使用--diff将修改信息输出到控制台而不更改原文件,下面我们还是结合一个实例来进行演示说明。

2).实例演示说明

这里我们仍然使用pylint部分的代码进行演示。通过上面的操作我们知道,对这段代码直接使用pylint进行测试会输出很多问题提示,并给出一个评分0。现在我们首先使用black对其进行格式化,得到以下代码:

  1. # -*- coding:utf-8 -*-
  2. import pandas as pd
  3. data = []
  4. char_replace_dict = {':':'  ', '(':'(', ')':')', ',':','}
  5. with open('xmq_survey.txt', 'r', encoding = 'utf-8') as file:
  6. for line in file.readlines():
  7. for key, value in char_replace_dict.items():
  8. line = line.replace(key, value)#原来这个是深度引用
  9. #这条代码比自己写的简介的多,也更python
  10. data.append(line)
  11. with open('survey.txt', 'w', encoding = 'utf-8') as file:
  12. for line in data:
  13. file.write(line)
  14. raw_data = pd.read_table('survey.txt', delimiter = '    ', header = None) #查看read_table函数的用法
  15. raw_data.columns = ['Name', 'Raw Info']
  16. raw_data.count()
  17. print('successful')

可能看起来修改前后的代码差异并不十分明显,实质上black已经对代码中参数赋值 = 两端的空格、注释的格式、制表符等进行了替换和修改,我们使用pylint来进行验证,执行 pylint 模块名称 命令,得到如下结果:

可以看到,相对于最初的文件,评分从0分提高到7.3分,输出的问题提示少了很多,剩余的问题主要是缺少说明文档、变量命名不规范.black对于提高我们代码规范性价比也是非常高的。

如果不想black直接对原文件进行修改,而是想看看它对代码中的哪些地方进行了改动的话,可以使用--diff参数,执行black --diff 文件名称,black会将相关信息输出到控制台(下图,其中-表示源代码,+表示建议修改后的代码),而不会对原文件进行修改。

总之,black真的是一个非常好用的库,尤其对于新手来说,可以很方便地规范自己的代码风格。

转载于:https://www.cnblogs.com/bonelee/p/11243359.html

python代码规范 自动优化工具Black相关推荐

  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. 100个必会的python脚本-100行Python代码实现自动抢火车票(附源码)

    前言 又要过年了,今年你不妨自己写一段代码来抢回家的火车票,是不是很Cool.下面话不多说了,来一起看看详细的介绍吧. 先准备好: 12306网站用户名和密码 chrome浏览器及下载chromedr ...

  5. python代码规范链接

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

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

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

  7. 自动优化工具Black帮你写出规范漂亮的python代码

    在众多代码格式化工具中,Black算是比较新的一个,它最大的特点是可配置项比较少,个人认为这对于新手来说是件好事,因为我们不必过多考虑如何设置Black,让 Black 自己做决定就好. 1).安装与 ...

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

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

  9. 「Python入门」Python代码规范(风格)

    ​ ​ 活动地址:CSDN21天学习挑战赛 文章目录 前言 一.编码规范 二.分号 三.行的最大长度 四. 缩进规则 五.Python注释 5.1 行注释 5.2 块注释 5.3 文档注释 六. Py ...

最新文章

  1. OpenCV(基础补充)颜色空间HSV *args与**args(滑动条传参问题)
  2. android bitmap 占用内存大小,drawable与bitmap内存占用大小
  3. matlab中 ne k,KFoldCV.m 查找径向基神经网络模型的网络参数的程序MATLAB函数'ne 联合开发网 - pudn.com...
  4. 链接聚合是将一组物理接口_500字描述华为VLAN聚合工作原理 你看懂了吗?
  5. python画关系网图_使用python绘制人人网好友关系图示例
  6. linux内核PID管理
  7. 查看已有设置_腾讯企点呼叫中心如何查看企点电话产生的数据报表?
  8. 神奇的Gamma函数(scipy)
  9. CactiEZ中文版说明
  10. 低通滤波器的设计与DSP实现
  11. 1534 棋子游戏(博弈)
  12. 【JavaWeb】虚拟路径和虚拟主机
  13. php替换word字符串,word怎么用符号替换字符
  14. 关于北京市电气火灾综合治理实施方案通知的解读
  15. 罗振宇跨年演讲精华版:2017年小心这五只黑天鹅
  16. ubuntu18.04 搭建ffmpeg踩坑
  17. F005-如是我观,知识产权 #F520
  18. 关于echarts无数据时显示问题
  19. 基于视觉的动态手势轨迹跟踪
  20. 80c51单片机指令大全

热门文章

  1. 彻底理解乐观锁和悲观锁的区别
  2. shell test应用
  3. openssh无法登录:server responded algorithm negotiation failed”
  4. java 类 赋值_Java实现不同的类的属性之间相互赋值
  5. 斐波拉契数列python123_python计算机二级题目分类汇总
  6. 鸿蒙系统的升级名单,首批升级鸿蒙系统的名单确认,华为安卓系统将成为过去式!...
  7. cannot resolve symbol r_64位ret2_dl_runtime_resolve模版题以及踩坑记录
  8. go 向buff写入一个字节_我在 Go 中犯的 5 个错误
  9. php伪造页面url地址,php 伪造HTTP_REFERER页面URL来源的三种方法
  10. 【高级Java架构师系统学习】java如何开发安卓软件