Python 子进程命令 运行 回显并保持 window 打开

Python subprocess command to run echo and leave the window open

在 python 2.7 中,我正在尝试:

  1. 使用子进程命令 Ping IP 地址而不显示控制台 window。
  2. 如果 ping 子进程命令 returns 不是 0,则警告用户 ping 失败
  3. 通过子进程使用 echo 命令提醒用户

第 1 步和第 2 步已完成。我在执行第 3 步时遇到问题。如果有比我尝试做的更好的方法来执行此操作,我愿意接受建议。我只是想要一种快速简便的方法来向用户显示简短警告。

第 3 步的大问题是控制台 window 出现,但很快消失。理想情况下,我想让 window 保持打开状态,直到收到一些用户反馈,但此时我也会暂停。

这是我的资料:

subprocess.call(['echo', 'One or more of the IPs failed to respond to their ping. Check Logs', ' & pause'])

我正在寻找的最终结果是用户正在他们的 PC 上处理他们的日常业务,出现一个弹出窗口,告诉他们计划的 ping 尝试没有到达目的地,用户提供反馈以关闭弹出窗口.

在 windows 环境中:

def cmdMessage(message):
    subprocess.call('cmd /K "echo ' + message + '"')

cmdMessage('One or more of the IPs failed to respond to their ping. Check Logs')
subprocess.call(['echo', 'One or more of the IPs failed to respond to their ping. Check Logs', ' & pause'])

& pause 部分不会起作用,因为这是您的 shell(无论是 Bash、Tcsh 还是什么)正在解释的内容。这实际上会将“& pause”作为第二个参数发送给 echo 命令。

出于好奇,您为什么不直接在 Python 中打印您的反馈?

print "One or more of the IPs failed to respond to their ping. Check logs."

如果要暂停,可以使用 time 模块中的 time.sleep。如果你想等待使用输入,你可以用 raw_input:

print "One or more of the IPs failed to respond to their ping. Check logs. Hit enter to continue."
raw_input()