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