Python - 好用第三方庫 isort
阿新 • • 發佈:2021-11-13
背景
PEP8 有建議 Python 模組中 import 的匯入順序
- 首先引入標準庫裡的模組
- 然後引入第三方模組
- 最後引入自己的模組
屬於同一個部分的 import 語句按字母順序排列
isort 的作用
可以自動將 Python 模組中的 import 進行排序,並自動按型別劃分以滿足上面說的 PEP8 規範
安裝 isort
pip install isort
實際效果
沒有 isort 之前
from my_lib import Object import os from my_lib import Object3 from my_lib import Object2import 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 命令
isort isort_test.py
isort之後
from __future__ importabsolute_import import os import sys from my_lib import Object, Object2, Object3 from third_party import ( lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14, lib15, ) print("Hey") print("yo")
可讀性和可維護性提高不要太多!
isort 的具體使用
指定檔案
isort mypythonfile.py mypythonfile2.py
當前目錄所有檔案
isort .
檢視修改建議,但不會修改檔案
isort mypythonfile.py --diff
常用命令列引數
--check-only、-c
- 使用 -c 執行程式碼來驗證程式碼的格式是否正確
- 任何包含錯誤排序和/或格式匯入的檔案都將輸出到 stderr
--skip、-s
跳過指定檔案,可以是檔名、目錄名、檔案路徑
--force-single-line-imports
強制所有 import 都出現在單行上
官方文件
實在太多命令列引數了,用到再查吧,預設不用引數也完全夠用了
https://pycqa.github.io/isort/docs/configuration/options.html