python代码规范 自动优化工具Black

自动优化工具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

时间: 2024-11-10 14:34:02

python代码规范 自动优化工具Black的相关文章

ReSharper的功能真的很强大主要是针对代码规范和优化,园子里介绍的也不少,如果你没有安装,那我只能表示你们会相见恨晚

二.ReSHarper 代码规范.单元测试.... ReSharper的功能真的很强大,主要是针对代码规范和优化,园子里介绍的也不少,如果你没有安装,那我只能表示你们会相见恨晚! 1.像命名不规范,foreach转化为linq, 用var来命名,出名的Ctrl+alt+Enter 自动修改,清除多余的变量和引用,Ctrl+K+D(这是VS自带的,搞错了)文档对齐,Ctrl+R+R 命名替换 等等我就不再多说了.用过的人都知道. 2.关键是这个货居然还能调整CSS. 比如: 比自己敲要来的快,当然

Python 代码精简和优化

Python很简单,容易使用,开发效率很高,移植性很好,代码资源也很丰富,被广泛使用.但是Python代码编出来的动态库比较大,python库很全,缺点就是库比较大. 在内存占用方法,随着py库的引入,内存也成倍的增加,这里来讨论下如何来给Python瘦身,以及如何优化内存的占用. 一.如何给Python的动态库瘦身. Python的代码还是很精练的,所以要减小小代码的大小比较困难,但是仍然有一些思路来减小Python库的大小. 1.strip python动态库. 动态库一般都是包含符号表,这

Python代码规范

一:背景 用于规范化ocp python开发,对于使用python开发的程序使用统一的风格,便于代码的维护 二:python风格规范 分号:不要在行尾加分号,也不要用分号将两条命令放在同一行 括号:宁缺毋滥的使用括号.除非是用于实现行连接,否则不要在返回语句或者条件语句中使用括号,不过在元组两边使用括号是允许的 缩进:用4个空格来代替缩进代码.绝对不要用tab,也不要tab和空格混用.对于行连接的情况,你应该要么垂直对齐换行的元素,或者使用4空格的悬进式缩进(这时第一行不应该有参数) 空行:顶级

Python代码规范(PEP8)问题及解决

安装了PyCharm,写代码过程中总是看到有波浪线,百度了下找到了这篇文章. 原文链接https://blog.csdn.net/Jason_Lewis/article/details/75386598 最近刚刚接触Python,为了养成好习惯,尽量保证自己写的代码符合PEP8代码规范,下面是过程中报出的警告及解决方法,英文有些翻译不太准确见谅,会不断更新: PEP 8: module level import not at top of file 解决:import不在文件的最上面,可能引用之

老李分享:pep8 python代码规范

什么是PEPPEP是 Python Enhancement Proposal 的缩写,翻译过来就是 Python增强建议书 . PEP8 译者:本文基于 2013-08-02 最后修改的 PEP8 版本翻译,若要查看英文原文,请参考PEP8简介 本文档给出的编码约定,来源于 Python 主发行版标准库中的代码.Python 的 C 语言实现所使用的 C 语言风格指南,请参考PEP7. 本文档与 PEP 257(文档字符串规范)都来自于 Guido1) 的 Python Style Guido

C#代码规范和质量检查工具

代码风格检查:StyleCop The StyleCop tool provides warnings that indicate style and consistency rule violations in C# code. The warnings are organized into rule areas such as documentation, layout, naming, ordering, readability, spacing, and so forth. Each w

JS代码风格自动规整工具Prettier

问题背景 通常使用 ESLint做代码风格检查检查, 和部分代码质量检查. 但是使用ESLint在入库时候, 会产生很多的代码修正工作, 需要开发者一个一个的修改. 如果很多,并且时间紧迫,甚是尴尬. ESLint http://eslint.cn/ ESLint最初是由Nicholas C. Zakas 于2013年6月创建的开源项目.它的目标是提供一个插件化的javascript代码检测工具. 代码检查是一种静态的分析,常用于寻找有问题的模式或者代码,并且不依赖于具体的编码风格.对大多数编程

80行Python代码实现自动爬取色情网站图片

用Python爬取色情网站的图片,技术宅的小玩具.在这里我将会向你详细介绍用Python下载一个色情网站图片的全部步骤,你会从中看到Python的简洁以及技术宅的无聊. 首先你应该应该有一个色情网站的网址,当然我不会给你的,自己找!!!我会告诉你其中的规律: http://www.*****.com/htm/piclist[1]/[2].htm 一个色情网站的图片区中,URL不同的只有[1][2]两处,通过观察你可以发现,[1]处表示图片种类(丝袜美腿.清纯唯美.****.and so on),

C# 代码规范和质量检查工具 StyleCop.Analyzers

简介 原来一直用 ReSharper 来进行代码质量检查,不过毕竟是收费的,所以想找个免费的可以推广给公司的同事也一起用.搜索了一下,找到了StyleCop,但是我在 VS 2015里安装 StyleCop 或者通过 Nuget 包安装 StyleCop.MSBuild,虽然编译以后能把 warning 显示在 Error List 中,但是无法通过 项目---右键 配置 StyleCop 的规则,最终在找到了一个 StyleCopAnalyzers 也算是 StyleCop 的新版本吧. 主要