在python中检测程序

时间:2013-01-16 14:31:10

标签: python linux wine

  

可能重复:
  Test if executable exists in Python?

是否有python函数让我检测计算机中是否安装了程序。我有一个运行.exe的程序,该部分适用于Windows,但要在linux中运行它需要葡萄酒,所以我需要一种方法让python函数检测葡萄酒。

1 个答案:

答案 0 :(得分:1)

您可以使用函数os.get_exec_path()来获取在PATH环境变量中设置的目录列表。如果您要查找的可执行文件不存在于任何这些目录中,则认为未安装该程序是正确的。

代码剪切以确定是否安装了Wine,然后看起来像这样:

import os
winePath = None
for directory in os.get_exec_path():
    testWinePath = os.path.join(directory, "wine")
    if os.path.exists(testWinePath) and os.access(testWinePath, os.R_OK | os.X_OK):
        winePath = executablePath
        break

如果安装了Wine,则其可执行文件(wine)的路径将位于winePath变量中;如果找不到,则winePath将为None。 代码还检查文件是否具有正确的读取和执行的权限。

自Python 3.2起,os.get_exec_path()可用。在旧版本中,您可以使用os.environ["PATH"].split(":")代替。