簡體   English   中英

Python子流程命令運行echo並保持窗口打開

[英]Python subprocess command to run echo and leave the window open

在python 2.7中,我正在嘗試:

  1. 使用subprocess命令對IP地址進行ping操作,而不顯示控制台窗口。
  2. 如果ping subproccess命令返回的值不是0,請警告用戶ping失敗
  3. 通過子過程使用echo命令提醒用戶

完成步驟1和2。 我在執行步驟3時遇到問題。如果有比我嘗試的方法更好的方法,則可以提出建議。 我只是想要一種快速簡便的方法來向用戶顯示簡短警告。

步驟3的主要問題是控制台窗口出現,但是很快消失。 理想情況下,我希望在收到一些用戶反饋之前將窗口保持打開狀態,但是在這一點上,我也會超時。

這是我所擁有的:

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還是其他)正在解釋的東西。 這實際上將把“&暫停”作為第二個參數發送給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()

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM