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

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

3天内不再提示

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

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

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 进行整理的时候,它会变得非常香。

有需要的小伙伴可以赶快试一下。

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

    关注

    2

    文章

    38

    浏览量

    9103
  • 代码
    +关注

    关注

    30

    文章

    4741

    浏览量

    68326
  • python
    +关注

    关注

    55

    文章

    4779

    浏览量

    84440
  • import
    +关注

    关注

    0

    文章

    15

    浏览量

    1949
收藏 人收藏

    评论

    相关推荐

    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实用工具详解 配套程序
    发表于 10-22 01:04

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

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

    多种电子工程师实用工具大全

    本文主要介绍了多种电子工程师实用工具大全.
    发表于 06-27 08:00 139次下载
    多种电子工程师<b class='flag-5'>实用工具</b>大全

    电阻色环的识别实用工具应用程序免费下载

    本文档的主要内容详细介绍的是电阻色环的识别实用工具应用程序免费下载。
    发表于 11-12 08:00 5次下载
    电阻色环的识别<b class='flag-5'>实用工具</b>应用程序免费下载

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

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

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

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

    LLC计算的实用工具应用程序免费下载

    本文档的主要内容详细介绍的是LLC计算的实用工具应用程序免费下载。
    发表于 03-31 08:00 91次下载
    LLC计算的<b class='flag-5'>实用工具</b>应用程序免费下载

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

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

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

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