python导入模块规范化——isort

个人学习记录,若有侵权,请联系删除。


一、介绍

isort是一个实用的Python库,用于按照字母表顺序对imports进行排序,并自动按类型(标准库/第三方库/自己的模块/.......)划分部分。它为各种编辑器提供了命令行程序、python库和插件以快速对所有导入进行排序。它需要python3.7+才能运行,但也支持格式化python2代码。

先看官网提供的例子,了解isort的魅力之处

# Before isort
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格式化后

# After 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")

二、安装

安装isort跟安装其他第三库的方式是一样,只需在命令行中输入:

pip install isort

三、使用

1、特定文件

示例:未使用isort时的代码文件learning.py

①方法一:在文件的路径下新建一个py文件,运行成功后即可将对应的文件导入模块进行排序

②方法二:在命令行使用命令

isort learning.py

 通过上述操作即可获取排序后的文件

 2、递归目录

使用以下指令可以对目录下的所有文件导入模块进行排序

isort .

isort **/*.py

3、查看建议的更改而不修改文件

isort xxx.py --diff

示例

 四、vscode

在vscode进行配置,保存时即对导入模块进行排序

1、安装isort,方法见二

2、对vscode的setting进行配置

①使用快捷键Ctrl + Shift + P,搜索Preferences: Open Settings(UI)

 ②搜索OnSave,点击Edit in setting.json

 ③修改setting.json的配置

五、操作注释

在单个文件中配置isort流的最基本方法是操作注释。这些注释在解析过程中由isort解析器拾取和解释。

1、isort: skip_file:跳过整个文件

# isort: skip_file
import os
import sys

2、isort: skip 

如果与导入语句放在同一行(或a的延续内),isort将不会对此导入进行排序

import b
import a # isort: skip    使用该指令后,前面的语句将不会被排序

3、isort: off

关闭isort解析。语句后的每一行都将保持不变地传递,直到注释或文件结束

import e
import f

# isort: off

import b
import a

4、isort: on

重新打开isort解析。这只有在文件中存在更高的注释时才有意义,允许在其他排序的导入块周围拥有未排序的导入块。

import e
import f

# isort: off

import b
import a

# isort: on

import c
import d

5、isort:split

告知isort当前排序部分已完成,并且所有将来的导入都属于新的排序分组。

import e
import f

# isort: split

import a
import b
import c
import d

6、dont-add-imports

不自动将导入添加到此文件,即使设置了--add-imports也是如此

7、dont-add-import

不自动添加特定的导入,即使--add-imports也是如此

8、isort -a

向所有文件添加导入

isort -a "from __future__ import print_function" *.py

仅将导入添加到已导入的文件

isort -a "from __future__ import print_function" --append-only *.py

9、isort --rm

从多个文件中删除导入

isort --rm "os.system" *.py

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值