from PIL import Image
import time
import subprocess
for i in bio:
p = subprocess.Popen(["C:\Program Files\IrfanView\i_view64.exe",'C:\\Users\Moondra\\Bioteck_charts\{}.png'.format(i)])
time.sleep(5)
p.kill()
这是我当前的代码。我在Windows7上。我在遍历一个列表,对于每个元素,我打开一张图片,然后在5秒后关闭它。但是,我希望能够暂停这个循环,如果我想研究图像更长的时间,然后能够从我停止的地方继续循环。在
Psudo代码如下:
^{pr2}$
我看到了这两个线程,但其中一个已经超过9年了(根据用户输入),而且这两个线程使用起来都很复杂(我并不太熟悉)。在
用户输入:
暂停循环:
有没有一个干净的方法来做我想做的事?在
编辑:
使用msvcrt进行测试from msvcrt import getch
while True:
key = ord(getch())
print(key)
if key == 27: #ESC
break
只是输出255(一遍又一遍)。
如果我按esc,没有反应,循环不会中断。
尽管按了不同的键,打印出来的数字(255)也没有改变。在
更新:
我在尝试另一种方式。不确定这是否更好,但是,我发现了一个名为
从线程导入线程
导入键盘
导入子流程
进口腌菜def keyboard_press():
while p == True:
if keyboard.is_pressed('down') == True:
print('yes')
input()
p.kill()
#continue
with open('C:\\Users\Moondra\\Bioteck.pickle', 'rb') as file:
bio = pickle.load(file)
for i in bio[:5]:
p = subprocess.Popen(["C:\Program Files\IrfanView\i_view64.exe",'C:\\Users\Moondra\\Bioteck_charts\{}.png'.format(i)])
from threading import Thread
t = Thread(target = keyboard_press, args =())
t.start()
t.join()
time.sleep(3)
p.kill()