2011-03-26 59 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)