0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Isort:自动整理import的超实用工具教程

科技绿洲 来源:Python实用宝典 作者:Python实用宝典 2023-10-21 10:38 次阅读

isort 是一个Python的实用程序/库,它会按字母顺序对导入(import)的库进行排序,并自动分组。它提供多种使用方式,包括命令行、Python调用等。

它基于Python 3.6+实现,但也支持格式化Python 2代码。

图片

在使用 isort 格式化你的 import 之前,你的代码可能是长这样的:

from my_lib import Object
import os
from my_lib import Object3
from my_lib import Object2
import sys
from third_party import lib15, lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14
import sys
from __future__ import absolute_import
from third_party import lib3
print("Hey")
print("yo")

使用 isort 格式化后的代码是这样的:

from __future__ import absolute_import import os
import sys from third_party import (lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,
                        lib9, lib10, lib11, lib12, lib13, lib14, lib15)

from my_lib import Object, 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 install isort

如果你需要让他支持对 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内部

import isort
isort.file("pythonfile.py")

或者:

import isort
sorted_code = isort.code("import bnimport an")

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 ** ,如下:

import module # isort:skip

或者:

from xyz import (abc, # isort:skip
                 yo,
                 hey)

要使 isort 跳过整个文件,只需添加 ** isort:skip_file ** 到文件的开头注释中:

"""
my_module.py
Best module ever

isort:skip_file
"""

import b
import a

这个工具还是相当方便的,尤其是针对一些杂乱无章、多年沉淀下来的项目代码的 import 进行整理的时候,它会变得非常香。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 代码
    +关注

    关注

    30

    文章

    4555

    浏览量

    66771
  • 工具
    +关注

    关注

    3

    文章

    305

    浏览量

    27431
  • import
    +关注

    关注

    0

    文章

    15

    浏览量

    1904
收藏 人收藏

    评论

    相关推荐

    matlab的实用工具命令

    数计算 Dsigma2 DSIGMA实用工具函数 Dtimvec 离散时间响应的自动定范围算法 Exresp 取样响应函数 Freqint Bode图的自动定范围算法 Freqint2 Nyquist
    发表于 09-22 15:56

    申请实用工具软件版主!【申请通过】

    标题:申请实用工具软件区版主会员ID:jianqian1991年龄:20注册日期:忘记了!申请日期:2010-04-27申请版块:实用工具软件特长及爱好:篮球,电影申请理由:无!每天都到这里下资料!问问题!总不能没点贡献!自学阶段没有技术!只想申请个
    发表于 04-27 09:10

    51单片机实用工具

    51单片机实用工具
    发表于 12-20 22:36

    LabVIEW实用工具***宝典课件

    不知道有没有人上传过《labview实用工具详解》和宝典配合真的很赞,不过只有前几章,我是从图书馆借的书,大家可以买一本
    发表于 01-25 22:40

    Labview实用工具详解 代码下载

    本帖最后由 tòrγㄚ 于 2015-7-8 10:10 编辑 Labview实用工具详解 代码下载
    发表于 06-30 15:43

    LabVIEW实用工具详解简版.pdf

    LabVIEW实用工具详解简版[url=https://bbs.elecfans.com/forum.php?mod=attachment&aid=MjcwNTU1fDk1ZTc1NWUyfDE0MzgwNDM5Nzl8MTM3MTg4fDUwMjI1MQ%3D%3D][/url]
    发表于 07-28 08:34

    Labview实用工具详解 电子书下载

    点击学习>>《龙哥手把手教你学LabVIEW视觉设计》视频教程Labview实用工具详解
    发表于 12-14 15:02

    labview实用工具详解 配套程序

    labview实用工具详解 配套程序
    发表于 10-22 01:04

    uartassist串口调试助手_实用工具

    uartassist串口调试助手_实用工具,感兴趣的小伙伴们可以瞧一瞧。
    发表于 11-17 11:16 39次下载

    UC3842频率自动计算实用工具免费下载

    本文档的主要内容详细介绍的是UC3842频率自动计算实用工具应用程序免费下载。
    发表于 11-28 08:00 227次下载
    UC3842频率<b class='flag-5'>自动</b>计算<b class='flag-5'>实用工具</b>免费下载

    windows启动修复实用工具免费下载

    本文档的主要内容详细介绍的是windows启动修复实用工具免费下载。
    发表于 12-10 08:00 1次下载
    windows启动修复<b class='flag-5'>实用工具</b>免费下载

    关闭Win10自动更新的实用工具免费下载

    本文档的主要内容详细介绍的是关闭Win10自动更新的实用工具免费下载。
    发表于 11-02 08:00 1次下载
    关闭Win10<b class='flag-5'>自动</b>更新的<b class='flag-5'>实用工具</b>免费下载

    LabVIEW实用工具详解电子版资源下载

    LabVIEW实用工具详解电子版资源下载
    发表于 09-12 09:38 0次下载

    如何使用 Python 来创建一些强大的应用和实用工具

    本文将探讨如何以 Zynq UltraScale 器件上的 IP 核为目标,使用 Python 来创建一些强大的应用和实用工具。此处提供了一个程序包,供您用于读取设备树和访问 IP 核。此外还提供一个实用工具,用于读取物理寄存器和开关 LED。
    发表于 09-08 10:23 562次阅读

    Isort自动整理 import 的超实用工具教程

    isort 是一个Python的实用程序/库,它会按字母顺序对导入(import)的库进行排序,并自动分组。它提供多种使用方式,包括命令行、Python调用等。 它基于Python 3.6+实现
    的头像 发表于 10-31 15:09 260次阅读
    <b class='flag-5'>Isort</b>:<b class='flag-5'>自动</b><b class='flag-5'>整理</b> <b class='flag-5'>import</b> 的超<b class='flag-5'>实用工具</b>教程