python - 检查网络连接并根据结果运行程序

标签 python

我正在编写一个程序,该程序将测试事件的网络连接,然后运行我们的软件下载程序(如果有)。如果下载器中有可供下载的更新,它将自动下载并安装所述更新。

import urllib3
from subprocess import Popen
import subprocess


def run_downloader():
    return subprocess.Popen(['C:\ProgramFiles\PrecisionOSTech\Education\POSTdownloader.exe'])

def internet_on():

   if urllib3.urlopen('http://216.58.192.142', timeout=1):
    return True
   else:
      urllib3.URLError
   return False
   if internet_on == True:
    run_downloader()

期望让程序测试事件连接并返回 true 或 false。如果为真,那么它应该运行下载程序。

目前,程序运行没有错误,但完成后不会运行下载程序。我只能想象 internet_on(): 方法没有像我想要的那样返回 true。如果我在方法之外运行 subprocess.Popen 行,下载程序将按计划启动。

感谢任何帮助!

谢谢

最佳答案

应该是这样的:

import urllib.request
from subprocess import Popen
import subprocess


def run_downloader():
    return subprocess.Popen(['C:\ProgramFiles\PrecisionOSTech\Education\POSTdownloader.exe'])

def ispageresponding():
    response_status_code = urllib.request.urlopen("http://www.stackoverflow.com").getcode()
    return response_status_code == 200:

if __name__ == '__main__':
    if ispageresponding() == True:
        run_downloader()

请注意,互联网连接函数是在 if 语句中调用的,而不是在同一函数内。另外,如果您使用 python3,您应该使用 urllib.request lib。

关于python - 检查网络连接并根据结果运行程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55382347/

相关文章:

python - pygtk 拖放问题 : file to GtkFileChooserButton

python - 根据 ID 将 JSON 文件拆分为多个 JSON?

python - 如何将 networkX 图导入到 neo4j?

python - 在 Tkinter 中打开新窗口会卡住程序(python 3.6)

python - 如何测试 LT 代码的实现?

python - MySQL python 查询从列中提取数据

python - 如何比较一列的两行,然后更改 pandas 中的另一列

python 重新。排除一些结果

python - 值错误: Unknown format code 'g' for object of type 'str'

python -/bin/sh : -c: line 0: syntax error near unexpected token `('