当前位置: 首页 > 面试题库 >

检查程序是否存在于python脚本中

叶德本
2023-03-14
问题内容

如何检查python脚本中是否存在程序?

假设您要检查wgetcurl是否可用。我们假设他们应该在路上。

最好看到一个多平台解决方案,但就目前而言,Linux足够了。

提示:

  • 运行命令并检查返回代码并不总是足够的,因为某些工具即使尝试也会返回非0结果--version
  • 检查命令时,屏幕上不应显示任何内容

另外,我希望能找到更通用的解决方案,例如 is_tool(name)


问题答案:

import subprocess
import os

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


 类似资料:
  • 问题内容: 如果我具有流程的PID,则os.FindProcess是否足以测试该流程的存在?我的意思是,如果返回,我是否可以认为它已终止(或被杀死)? 编辑: 我刚刚写了一个包装函数(旧式bash流程测试)。这可以正常工作,但是如果有其他解决方案(使用go库完成),我仍然很高兴。 问题答案: 这是查看进程是否处于活动状态的传统的Unix方式-向其发送0信号(就像您对bash示例所做的一样)。 来自

  • 问题内容: 我想检查某个网站是否存在,这就是我正在做的事情: 如果该页面不存在(错误402或其他任何错误),我可以在该行中做什么以确保正在读取的页面退出? 问题答案: 您可以使用HEAD请求而不是GET。它将仅下载标题,而不下载内容。然后,您可以从标题中检查响应状态。 或者你可以使用 或者你可以使用

  • 问题内容: 我经常要检查一个对象是否有成员。一个示例是在函数中创建单例。为此,可以这样使用: 但您也可以这样做: 一种方法比另一种更好吗? 编辑: 添加了…但是,请注意,问题 不 在于如何制作单例,而在于如何检查对象中成员的存在。 编辑: 对于该示例,一种典型用法是: 然后是类型相同的对象,每次相同。并且,通常,该方法被调用多次。 问题答案: 这是两种不同的方法:№1是LBYL(飞跃前先看一下),

  • 问题内容: 我有一个问题-我正在使用Selenium(firefox)Web驱动程序打开网页,单击一些链接等,然后捕获屏幕截图。 我的脚本可以从CLI正常运行,但是通过cronjob运行时,它并没有通过第一个find_element()测试。我需要添加一些调试,或一些帮助我弄清为什么失败的东西。 基本上,我必须先单击“登录”锚点,然后才能进入登录页面。元素的构造为: 我正在通过LINK_TEXT方

  • 问题内容: 我正在尝试通过查找元素 在Python中,selenium并不总是存在。是否有一条快速的线检查它是否存在,并在不存在时显示NULL或FALSE代替错误消息? 问题答案: 您可以按以下方式实现/ 阻止以检查元素是否存在: 或使用其中一种方法进行检查。它应该返回空列表或与传递的选择器匹配的元素列表,但如果没有找到元素,也不例外:

  • 我试图在存储过程中测试序列是否已经存在。 我已经尝试了上面代码片段的几个变体,但没有运气。我一定是给谷歌错误的术语,因为我似乎找不到任何关于这个主题的东西。任何帮助都很感激!