<address id="5llnp"><pre id="5llnp"><span id="5llnp"></span></pre></address>

    <track id="5llnp"><strike id="5llnp"></strike></track>

    <pre id="5llnp"><ruby id="5llnp"></ruby></pre>

      
      <address id="5llnp"><strike id="5llnp"><span id="5llnp"></span></strike></address>
          <pre id="5llnp"></pre>
            <track id="5llnp"></track>
            您的位置:首頁 >聚焦 >

            全球新動態:Isort 自動整理 import 的超實用工具教程

            2022-08-11 20:37:28    來源:程序員客棧

            isort 是一個Python的實用程序/庫,它會按字母順序對導入(import)的庫進行排序,并自動分組。它提供多種使用方式,包括命令行、Python調用等。


            (資料圖片)

            它基于Python 3.6+實現,但也支持格式化Python 2代碼。

            在使用 isort 格式化你的 import 之前,你的代碼可能是長這樣的:

            frommy_lib importObjectimportosfrommy_lib importObject3frommy_lib importObject2importsysfromthird_party importlib15, lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8, lib9, lib10, lib11, lib12, lib13, lib14importsysfrom__future__ importabsolute_importfromthird_party importlib3print("Hey")print("yo")

            使用 isort 格式化后的代碼是這樣的:

            from__future__ importabsolute_import importosimportsys fromthird_party import(lib1, lib2, lib3, lib4, lib5, lib6, lib7, lib8,lib9, lib10, lib11, lib12, lib13, lib14, lib15)frommy_lib importObject, 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 installisort

            如果你需要讓他支持對 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內部:

            importisortisort.file("pythonfile.py")

            或者:

            importisortsorted_code = isort.code("import b\nimport a\n")

            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,如下:

            importmodule # isort:skip

            或者:

            fromxyz import(abc, # isort:skipyo,hey)

            要使 isort 跳過整個文件,只需添加isort:skip_file到文件的開頭注釋中:

            """ my_module.pyBest module everisort:skip_file"""importbimporta

            這個工具還是相當方便的,尤其是針對一些雜亂無章、多年沉淀下來的項目代碼的 import 進行整理的時候,它會變得非常香。

            有需要的小伙伴可以趕快試一下。

            我們的文章到此就結束啦,如果你喜歡今天的Python 實戰教程,請持續關注Python實用寶典。

            有任何問題,可以在公眾號后臺回復:加群,回答相應紅字驗證信息,進入互助群詢問。

            原創不易,希望你能在下面點個贊和在看支持我繼續創作,謝謝!

            點擊下方閱讀原文可獲得更好的閱讀體驗

            Python實用寶典(pythondict.com)不只是一個寶典歡迎關注公眾號:Python實用寶典

            關鍵詞: 數據分析 雜亂無章 已經成功

            相關閱讀

            诱人的瑜伽老师HD中字

              <address id="5llnp"><pre id="5llnp"><span id="5llnp"></span></pre></address>

              <track id="5llnp"><strike id="5llnp"></strike></track>

              <pre id="5llnp"><ruby id="5llnp"></ruby></pre>

                
                <address id="5llnp"><strike id="5llnp"><span id="5llnp"></span></strike></address>
                    <pre id="5llnp"></pre>
                      <track id="5llnp"></track>