2011-03-26 50 views
1

嘿,我正在開發一個需要花費幾分鐘的操作的python項目。事情是,因爲它需要幾分鐘我希望用戶能夠按回車看到行動的當前狀態。我如何在Python 2中執行此操作?在輸入操作?

+0

這是一個命令行項目或一個用戶界面?你可以發佈一些代碼來啓動後臺任務嗎? – pajton 2011-03-26 21:59:24

+0

這是一個命令行項目。這是一個簡單的端口掃描器。我只想讓它寫出用戶按下輸入時掃描的端口。 – Jmariz 2011-03-26 22:01:37

+0

最簡單的方法是使用我猜的線程。一個線程掃描端口,另一個等待用戶輸入。 – pajton 2011-03-26 22:04:03

回答

0

@ Space_C0wb0y是對的,進度條是一個很好的解決方案。然而,這表明了一種做你所要求的方式。一些代碼捏從這裏:Non-blocking read on a subprocess.PIPE in python

import fcntl, os, sys 

# make stdin a non-blocking file 
fd = sys.stdin.fileno() 
fl = fcntl.fcntl(fd, fcntl.F_GETFL) 
fcntl.fcntl(fd, fcntl.F_SETFL, fl | os.O_NONBLOCK) 

def enter_pressed(): 
    data = sys.stdin.read(1) 
    return bool(data) 

i = 0 
while True: 
    i += 1 
    if enter_pressed(): 
     print(i)