我是python的初学者,这个问题可能看起来有些多余,但我还没有解决这个问题。 我想运行一个函数,该函数接受用户输入并在后台等待用户输入,而主函数保持运行
该函数将参数作为依赖于主函数的参数。此外,如果用户没有提供任何输入,则必须执行该函数下面的代码
我一直在尝试使用线程概念,但没有成功。 代码如下:
import sys
import time
import logging
import threading
event_handler = Handler()
observer = watchdog.observers.Observer()
observer.schedule(event_handler, path, recursive=True)
observer.start()
try:
while True:
time.sleep(1)
except KeyboardInterrupt:
observer.stop()
observer.join()
import watchdog.events
import watchdog.observers
import queue
import itertools
from copy import deepcopy
class Handler(watchdog.events.PatternMatchingEventHandler):
def __init__(self):
watchdog.events.PatternMatchingEventHandler.__init__(self, patterns=['*.txt'],
ignore_directories=True, case_sensitive=False)
def function_to_be_threaded(self,user_input,arg1,arg2,val):
user_input[0] = input('Enter information')
...
...
val[0] = ...
def on_created(self,):
...
...
arg1 = ...
arg2 = ...
user_input = [None]
val = [None]
flag = False
t = threading.Thread(target = function_to_be_threaded, args = (user_input,arg1,arg2,val,))
t.daemon = True
t.start()
for i in range(1,10):
time.sleep(1)
if(user_input[0] is not None):
result = val[0]
...
flag = True
break
if(not flag):
...
...
... #this part should always execute irrespective of flag
...
但代码一直在等待用户输入,一段时间后崩溃
我昨天也用了这个方法,但不知怎么的,它不起作用。 我只是查了一下,发现每个教程都有
但是我没有使用
.join()
方法,你也没有。也许这就是问题所在?也请给我反馈相关问题 更多 >
编程相关推荐