2012-07-24 267 views
6

我有一個python腳本,我已經使用註冊表鍵刪除,但它似乎不工作。 cmd.exe窗口只是閃爍,我可以以某種方式使窗口保持不變,或保存輸出?保持cmd.exe打開

編輯:問題是,它給了整個路徑不僅文件名。

回答

6

如果你想要一個純Python的解決了這個,你就會有一個嘗試換你的腳本/ except子句:

import traceback 
try: 
    ... your script ... 
except: 
    traceback.print_exc() 

raw_input("Press Enter to close") # Python 2 
input("Press Enter to close") # Python 3 

這樣窗口將保持打開狀態,甚至當你的代碼拋出一個例外。當Python無法解析腳本時,它仍然會關閉,即當您有語法錯誤時。如果你想解決這個問題,我會建議一個好的IDE,讓你以更愉快的方式開發(想起PyCharmPyDev)。

+0

謝謝,我最終在你的帖子之前這樣做了,不過謝謝:) – 2012-07-24 09:36:40

+1

也許把'print_exc()'調用的('raw_'''input')放在同一個級別。然後只有在有異常時纔會暫停。 – glglgl 2012-07-24 09:42:13

2

在腳本的末尾插入線:

raw_input("Press Enter to close") # Python 2 

input("Press Enter to close") # Python 3 
1

當腳本完成其執行過程中,窗口被關閉。

保持開放的一個竅門是讓它向用戶詢問某種輸入,例如,通過raw_input


所以,你可以再補充

raw_input() 

到腳本的結束,等待用戶按回車

1

另一種可能的選擇是創建一個帶有textarea和關閉按鈕的基本TKinter GUI。然後用子進程或者equiv運行。並使用pythonw.exe執行您的python腳本中的stdout,這樣就不會出現CMD提示符。

這使得它純粹是用Python STDLIB的,也意味着你可以使用GUI設置選項或輸入參數...

只是一個想法。

1

右鍵單擊腳本並在其屬性中取消退出程序 - >退出複選框,或使用cmd /k作爲其調用行的一部分。

在引入人爲延遲或需要按下鍵之前考慮兩次 - 這會使您的腳本在任何無人值守/管道調用中幾乎不可用。