Hoj*_*olf 9 python executable path
在 Python 中识别可执行文件的最佳方法是什么?
我发现以下函数会找到记事本可执行文件
from shutil import which
which('notepad')
Run Code Online (Sandbox Code Playgroud)
from shutil import which
which('notepad')
Run Code Online (Sandbox Code Playgroud)
另一种方法来做到这一点。
from distutils import spawn
spawn.find_executable('notepad')
Run Code Online (Sandbox Code Playgroud)
Out[32]: 'C:\\Windows\\system32\\notepad.EXE'
Run Code Online (Sandbox Code Playgroud)
虽然这两种方法都适用于记事本,但我似乎无法让它们找到其他可执行文件,例如vlc.exe、gimp-2.10.exe或其他文件。在计算机上查找可执行文件的更好方法是什么?
这是独立于平台的有效方法:
import subprocess
import os
import platform
def is_tool(name):
try:
devnull = open(os.devnull)
subprocess.Popen([name], stdout=devnull, stderr=devnull).communicate()
except OSError as e:
if e.errno == os.errno.ENOENT:
return False
return True
def find_prog(prog):
if is_tool(prog):
cmd = "where" if platform.system() == "Windows" else "which"
return subprocess.call([cmd, prog])
Run Code Online (Sandbox Code Playgroud)