python - 从 `which` 获取返回值来测试目录是否存在

标签 python bash shell

我正在尝试编写一些东西来测试计算机上是否安装了 Bower。我正在尝试用 python 或 shell 脚本来完成它。我对两者都满意,但两者都失败了。我正在使用 which 函数并通过 python 中的子进程执行它。 (也许还有另一种方法可以做到这一点,那就是纯Python,而不是让它执行bash(?))

Python:

 if subprocess.call(['which', 'bower']):
    print("bower exists at: " + subprocess.call(['which', 'bower']))
else:
    print("no bower") //this prints

bash :

if [ which bower ] #also tried if [ which bower == /usr/local/bin/bower]
then
    echo "bower installed"
else
    echo "no bower"
fi

我猜问题是 which 没有返回字符串,它只是打印它。我如何访问它返回的信息?

最佳答案

您可以使用 distutils 中的 find_executable 函数。如果找不到可执行文件,它将返回 None:

>>> from distutils.spawn import find_executable
>>> find_executable('man')
'/usr/bin/man'
>>> find_executable('noman')
>>> 

关于python - 从 `which` 获取返回值来测试目录是否存在,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30060419/

相关文章:

python - 如何删除包含在同一字符串列表中的其他字符串中的字符串?

linux - Bash 变量数学不起作用

python - shell 脚本不能与 nohup 一起工作

python - 有人可以向我解释以下 os.fork() 示例吗?

python - python3.5中无法导入Kicad的Pcbnew

linux - 检查 bash 的安装包

bash - Shell exec 和管道

linux - Grep 用户输入以查找号码

shell - 为什么用 tee 重定向不能按预期工作?

python - 是否可以使用BLAS来加速稀疏矩阵乘法?