问题描述
我是 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,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
...
但代码一直在等待用户输入并在一段时间后崩溃。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)