isort 是一個Python的實用程序/庫,它會按字母順序?qū)?import)的庫進行排序,并自動分組。它提供多種使用方式,包括命令行、Python調(diào)用等。
它基于Python 3.6+實現(xiàn),但也支持格式化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")
雜亂無章的格式瞬間變得井然有序,可見這是一款多么優(yōu)秀的整理工具,下面就來介紹這個工具的安裝及使用過程,及進階用法。
1.準備
開始之前,你要確保Python和pip已經(jīng)成功安裝在電腦上,如果沒有,可以訪問這篇文章:超詳細Python安裝指南 進行安裝。
**(可選1) **如果你用Python的目的是數(shù)據(jù)分析,可以直接安裝Anaconda:Python數(shù)據(jù)分析與挖掘好幫手—Anaconda,它內(nèi)置了Python和pip.
**(可選2) **此外,推薦大家用VSCode編輯器,它有許多的優(yōu)點:Python 編程的最好搭檔—VSCode 詳細指南。
請選擇以下任一種方式輸入命令安裝依賴 :
- Windows 環(huán)境 打開 Cmd (開始-運行-CMD)。
- MacOS 環(huán)境 打開 Terminal (command+空格輸入Terminal)。
- 如果你用的是 VSCode編輯器 或 Pycharm,可以直接使用界面下方的Terminal.
pip install isort
如果你需要讓他支持對 requirements.txt 的整理,請這樣安裝:
pip install isort[requirements_deprecated_finder]
2.使用 isort 整理你的python引用
isort 有2種使用方法,一種是從命令行直接針對py文件進行整理、另一種是在Python內(nèi)導入 isort 進行整理。
命令行整理
要在特定文件上運行 isort,請在命令行執(zhí)行以下操作:
isort mypythonfile.py mypythonfile2.py
# 或
python -m isort mypythonfile.py mypythonfile2.py
要對本文件夾遞歸進行isort整理,請執(zhí)行以下操作:
isort .
# 或
python -m isort .
要查看更改建議的而不直接應(yīng)用它們,請執(zhí)行以下操作:
isort mypythonfile.py --diff
如果你要對項目自動運行isort,但是希望僅在未引入語法錯誤的情況下應(yīng)用更改:
isort --atomic .
(注意:這在默認情況下是禁用的,因為它阻止了 isort 去整理不同版本的Python代碼。)
從Python內(nèi)部 :
import isort
isort.file("pythonfile.py")
或者:
import isort
sorted_code = isort.code("import bnimport an")
3. 智能平衡格式化
從 isort 3.1.0 開始,添加了對平衡多行導入的支持。啟用此選項后,isort 將動態(tài)地將導入長度更改為生成最平衡網(wǎng)格的長度,同時保持低于定義的最大導入長度。
開啟了平衡導入的格式化:
from __future__ import (absolute_import, division,
print_function, unicode_literals)
未開啟平衡的格式化:
from __future__ import (absolute_import, division, print_function,
unicode_literals)
要啟用此設(shè)置, 在你的配置設(shè)置 ** balanced_wrapping
** = **True
或 通過命令行添加-e
** 參數(shù)執(zhí)行整理。
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 進行整理的時候,它會變得非常香。
有需要的小伙伴可以趕快試一下。
-
格式化
+關(guān)注
關(guān)注
2文章
39瀏覽量
9116 -
代碼
+關(guān)注
關(guān)注
30文章
4788瀏覽量
68616 -
python
+關(guān)注
關(guān)注
56文章
4797瀏覽量
84690 -
import
+關(guān)注
關(guān)注
0文章
15瀏覽量
1966
發(fā)布評論請先 登錄
相關(guān)推薦
評論