或你在python項(xiàng)目開(kāi)發(fā)可能見(jiàn)過(guò)各種各樣的import,比如import不明的import *:

又比如import順序混亂以至于都不清楚哪些包/模塊是否已經(jīng)被import過(guò)了:

在開(kāi)發(fā)過(guò)程中,良好的代碼風(fēng)格和規(guī)范可以使代碼更加可讀、維護(hù)更加方便。Python 提供了多種工具來(lái)幫助開(kāi)發(fā)者保持代碼的一致性和整潔度。其中,isort 是一個(gè)專門用于整理導(dǎo)入語(yǔ)句的工具,可以幫助開(kāi)發(fā)者將代碼中的導(dǎo)入語(yǔ)句按照規(guī)定的順序排序,并自動(dòng)去除未使用的導(dǎo)入。
功能介紹
isort 主要提供以下功能:
- 自動(dòng)排序?qū)?/strong>:根據(jù)用戶設(shè)置的規(guī)則,對(duì)代碼文件中的導(dǎo)入語(yǔ)句進(jìn)行排序。
- 分組導(dǎo)入:將導(dǎo)入語(yǔ)句分成標(biāo)準(zhǔn)庫(kù)導(dǎo)入、第三方庫(kù)導(dǎo)入和本地模塊導(dǎo)入三個(gè)組,并進(jìn)行排序。
- 自動(dòng)去除未使用的導(dǎo)入:isort 可以自動(dòng)去除代碼中未使用的導(dǎo)入語(yǔ)句。
- 自動(dòng)合并導(dǎo)入:isort 會(huì)將同一個(gè)模塊的多個(gè)導(dǎo)入合并成一個(gè)導(dǎo)入。
- 自定義排序規(guī)則:isort 提供了多種選項(xiàng),允許開(kāi)發(fā)者自定義導(dǎo)入語(yǔ)句的排序規(guī)則。
安裝
您可以通過(guò) pip 命令安裝 isort:
pip install isort
安裝成功后,您可以在命令行中輸入 isort --version 來(lái)檢查 isort 的版本。
使用教程
命令行使用
isort 提供了豐富的命令行選項(xiàng)。最基本的用法是指定一個(gè)或多個(gè)文件、目錄,然后讓 isort 對(duì)其進(jìn)行整理:
isort your_file.py
您也可以對(duì)整個(gè)目錄中的所有 Python 文件進(jìn)行整理:
isort your_directory/
常見(jiàn)的命令行選項(xiàng)包括:
- --check:檢查文件中導(dǎo)入語(yǔ)句的順序是否正確,而不對(duì)文件進(jìn)行修改。如果存在不符合規(guī)范的導(dǎo)入語(yǔ)句,命令會(huì)返回錯(cuò)誤代碼。
- --diff:顯示文件在整理之前和之后的差異,而不對(duì)文件進(jìn)行修改。
- --profile:指定排序規(guī)則的配置文件,如 black 或 google。
-
--multi-line:指定多行導(dǎo)入的格式。
以下是一個(gè)指定了--multi-line=VERTICAL多行導(dǎo)入的格式效果:
isort --multi-line=VERTICAL your_file.py

在代碼中使用
isort 也可以作為一個(gè)庫(kù)在 Python 代碼中使用,因?yàn)閕sort也是一個(gè)第三方庫(kù)。下面是一個(gè)示例:
from isort import file
# 對(duì)指定文件進(jìn)行整理
file("your_file.py")
# 對(duì)指定目錄中的所有文件進(jìn)行整理
file("your_directory/", recursive=True)
配置文件
isort 支持在項(xiàng)目根目錄中放置一個(gè)名為 .isort.cfg 的配置文件,以便自定義排序規(guī)則和選項(xiàng)。您可以在其中設(shè)置排序方式、組劃分等選項(xiàng)。示例如下:
[settings]
line_length = 88
profile = black
known_third_party = pandas,numpy
known_first_party = mypackage
總結(jié)
isort 是一個(gè)強(qiáng)大的工具,可以幫助開(kāi)發(fā)者輕松整理代碼中的導(dǎo)入語(yǔ)句。通過(guò)使用 isort,代碼的可讀性和一致性得到了提高,也讓讓團(tuán)隊(duì)協(xié)作更加高效。