python编译器无法运行input_为何python多线程程序在末尾添加input()能运行,不添加就不能运行...
程序簡介:該程序包含兩個線程,一個線程就是不斷的循環(huán)print一個遞增的數,另一個線程就是監(jiān)控鍵盤,如果鍵盤按下F12,則兩個線程都停止。出現的情況:1.這個程序在python的IDLE(Sh...
程序簡介:
該程序包含兩個線程,一個線程就是不斷的循環(huán)print一個遞增的數,另一個線程就是監(jiān)控鍵盤,如果鍵盤按下F12,則兩個線程都停止。
出現的情況:
1.這個程序在python的IDLE(Shell)中按F5可以直接執(zhí)行,但是雙擊.py文件不能執(zhí)行。(我已經設置環(huán)境變量,雙擊其他單線程的程序都能直接執(zhí)行的)
2.我發(fā)現雙擊這個程序的py文件,會有一個cmd框瞬間彈出,一些文字一閃而過。于是我就在程序末尾添加raw_input()語句,本來我是想看看那段一閃而過的文字的,沒想到添加這句后,程序居然可以雙擊py文件運行了
3.可是,當我把程序用py2exe打包成exe時,貌似由于exe文件沒有cmd那個框框,所以會報錯。
請問大神:
為什么程序末尾添加raw_input()則可以雙擊py文件執(zhí)行,而不添加這一句就不能執(zhí)行?求解決方案?
**********************************************************************************
完整程序代碼:
#!/usr/bin/env python
# -*- coding: GBK -*-
import pythoncom
import pyHook
import win32api
import win32con
import win32gui
import time
import thread
theEndString='1'
i=0
def onKeyboardEvent(event):
"處理鍵盤事件"
"判斷是否終止程序"
if str(event.Key)=='F12': #按下F12后終止
win32api.PostQuitMessage() #注意!!!若執(zhí)行這一步,則跳到pythoncom.PumpMessages()之后
return True
def PlayRecord(name):
global i
while True:
i +=1
print i
if theEndString == 'End':
break
thread.exit_thread() #結束線程
def WaitForKeyboard(name):
global theEndString
hm = pyHook.HookManager()
#監(jiān)控鍵盤
hm.KeyDown = onKeyboardEvent
hm.HookKeyboard()
pythoncom.PumpMessages(10000) #消息循環(huán)
theEndString = 'End'
thread.exit_thread() #結束線程
def test():
thread.start_new_thread(PlayRecord, ('A',))
thread.start_new_thread(WaitForKeyboard, ('B',))
if __name__== '__main__':
test()
#raw_input() #添加這一句就能直接雙擊py文件運行,如果沒有這一句則不能運行
展開
總結
以上是生活随笔為你收集整理的python编译器无法运行input_为何python多线程程序在末尾添加input()能运行,不添加就不能运行...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 语音识别-时域分析
- 下一篇: 语音识别-过零率和短时能量-端点检测