Python 中的 which 命令

Hemank Mehtani 2023年1月30日 2021年10月2日
  1. 在 Python 中使用 shutil.which() 函式模擬的 which 命令
  2. 在 Python 中建立一個函式來模擬的 which 命令
Python 中的 which 命令

在 Linux 中,我們有 which 命令。此命令可以識別給定可執行檔案的路徑。

在本教程中,我們將在 Python 中模擬此命令。

在 Python 中使用 shutil.which() 函式模擬的 which 命令

我們可以使用 shutil.which() 函式在 Python 中模擬這個命令。這個函式是最近在 Python 3.3 中新增的。shutil 模組提供了幾個函式來處理對檔案及其集合的操作。

shutil.which() 函式返回給定可執行檔案的路徑,如果 cmd 被呼叫,它將執行。

例如,

import shutil 
print(shutil.which("python"))

輸出:

C:\Anaconda\python.EXE

在上面的示例中,shutil.which() 返回 Python 可執行檔案的目錄。

在 Python 中建立一個函式來模擬的 which 命令

在 Python 3.3 以下,無法使用 shutil.which() 函式。所以在這裡,我們可以使用 os 模組中的函式建立一個函式來搜尋給定的可執行檔案並模擬 which 命令。

請參考以下程式碼。

import os
def which(pgm):
    path=os.getenv('PATH')
    for p in path.split(os.path.pathsep):
        p=os.path.join(p,pgm)
        if os.path.exists(p) and os.access(p,os.X_OK):
            return p

print(which("python.exe"))

輸出:

C:\Anaconda\python.exe