全球新动态:Isort 自动整理 import 的超实用工具教程
isort 是一个Python的实用程序/库,它会按字母顺序对导入(import)的库进行排序,并自动分组。它提供多种使用方式,包括命令行、Python调用等。
(资料图片)
它基于Python 3.6+实现,但也支持格式化Python 2代码。
在使用 isort 格式化你的 import 之前,你的代码可能是长这样的:
frommy_lib importObjectimportosfrommy_lib importObject3frommy_lib importObject2importsysfromthird_party importlib15, lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14importsysfrom__future__ importabsolute_importfromthird_party importlib3print("Hey")print("yo")
使用 isort 格式化后的代码是这样的:
from__future__ importabsolute_import importosimportsys fromthird_party import(lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,lib9, lib10, lib11, lib12, lib13, lib14, lib15)frommy_lib importObject, Object2, Object3 print("Hey")print("yo")
杂乱无章的格式瞬间变得井然有序,可见这是一款多么优秀的整理工具,下面就来介绍这个工具的安装及使用过程,及进阶用法。
1.准备
开始之前,你要确保Python和pip已经成功安装在电脑上,如果没有,可以访问这篇文章:超详细Python安装指南进行安装。
(可选1)如果你用Python的目的是数据分析,可以直接安装Anaconda:Python数据分析与挖掘好帮手—Anaconda,它内置了Python和pip.
(可选2)此外,推荐大家用VSCode编辑器,它有许多的优点:Python 编程的最好搭档—VSCode 详细指南。
请选择以下任一种方式输入命令安装依赖:1. Windows 环境 打开 Cmd (开始-运行-CMD)。2. MacOS 环境 打开 Terminal (command+空格输入Terminal)。3. 如果你用的是 VSCode编辑器 或 Pycharm,可以直接使用界面下方的Terminal.
pip installisort
如果你需要让他支持对 requirements.txt 的整理,请这样安装:
pip install isort[requirements_deprecated_finder]
2.使用 isort 整理你的python引用
isort 有2种使用方法,一种是从命令行直接针对py文件进行整理、另一种是在Python内导入 isort 进行整理。
命令行整理
要在特定文件上运行 isort,请在命令行执行以下操作:
isort mypythonfile.py mypythonfile2.py# 或python -m isort mypythonfile.py mypythonfile2.py
要对本文件夹递归进行isort整理,请执行以下操作:
isort .# 或python -m isort .
要查看更改建议的而不直接应用它们,请执行以下操作:
isort mypythonfile.py --diff
如果你要对项目自动运行isort,但是希望仅在未引入语法错误的情况下应用更改:
isort --atomic .
(注意:这在默认情况下是禁用的,因为它阻止了 isort 去整理不同版本的Python代码。)
从Python内部:
importisortisort.file("pythonfile.py")
或者:
importisortsorted_code = isort.code("import b\nimport a\n")
3. 智能平衡格式化
从 isort 3.1.0 开始,添加了对平衡多行导入的支持。启用此选项后,isort 将动态地将导入长度更改为生成最平衡网格的长度,同时保持低于定义的最大导入长度。
开启了平衡导入的格式化:
from__future__ import(absolute_import, division,print_function, unicode_literals)
未开启平衡的格式化:
from__future__ import(absolute_import, division, print_function,unicode_literals)
要启用此设置, 在你的配置设置balanced_wrapping=True或 通过命令行添加-e参数执行整理。
4.跳过某个import
要使 isort 忽略单个 import,只需在包含文本的导入行的末尾添加注释isort:skip,如下:
importmodule # isort:skip
或者:
fromxyz import(abc, # isort:skipyo,hey)
要使 isort 跳过整个文件,只需添加isort:skip_file到文件的开头注释中:
""" my_module.pyBest module everisort:skip_file"""importbimporta
这个工具还是相当方便的,尤其是针对一些杂乱无章、多年沉淀下来的项目代码的 import 进行整理的时候,它会变得非常香。
有需要的小伙伴可以赶快试一下。
我们的文章到此就结束啦,如果你喜欢今天的Python 实战教程,请持续关注Python实用宝典。
有任何问题,可以在公众号后台回复:加群,回答相应红字验证信息,进入互助群询问。
原创不易,希望你能在下面点个赞和在看支持我继续创作,谢谢!
点击下方阅读原文可获得更好的阅读体验
Python实用宝典(pythondict.com)不只是一个宝典欢迎关注公众号:Python实用宝典
相关阅读
-
世界热推荐:今晚7:00直播丨下一个突破...
今晚19:00,Cocos视频号直播马上点击【预约】啦↓↓↓在运营了三年... -
NFT周刊|Magic Eden宣布支持Polygon网...
Block-986在NFT这样的市场,每周都会有相当多项目起起伏伏。在过去... -
环球今亮点!头条观察 | DeFi的兴衰与...
在比特币得到机构关注之后,许多财务专家预测世界将因为加密货币的... -
重新审视合作,体育Crypto的可靠关系才能双赢
Block-987即使在体育Crypto领域,人们的目光仍然集中在FTX上。随着... -
简讯:前端单元测试,更进一步
前端测试@2022如果从2014年Jest的第一个版本发布开始计算,前端开发... -
焦点热讯:刘强东这波操作秀
近日,刘强东发布京东全员信,信中提到:自2023年1月1日起,逐步为...