O comando which em Python

Hemank Mehtani 30 janeiro 2023
  1. Use a função shutil.which() para emular o comando which em Python
  2. Crie uma função para emular o comando which em Python
O comando which em Python

No Linux, temos o comando which. Este comando pode identificar o caminho para um determinado executável.

Neste tutorial, vamos emular esse comando em Python.

Use a função shutil.which() para emular o comando which em Python

Podemos emular este comando em Python usando a função shutil.which(). Esta função é uma adição recente no Python 3.3. O módulo shutil oferece várias funções para lidar com as operações sobre os arquivos e suas coleções.

A função shutil.which() retorna o caminho de um determinado executável, que seria executado se cmd fosse chamado.

Por exemplo,

import shutil

print(shutil.which("python"))

Produção:

C:\Anaconda\python.EXE

No exemplo acima, o shutil.which() retorna o diretório do executável Python.

Crie uma função para emular o comando which em Python

Abaixo do Python 3.3, não há como usar a função shutil.which(). Então, aqui, podemos criar uma função usando funções do módulo os para pesquisar o executável fornecido e emular o comando which.

Veja o seguinte código.

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"))

Produção:

C:\Anaconda\python.exe