Python 中的 which 命令
Hemank Mehtani
2023年1月30日
2021年10月2日
在 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