运行一个函数,将后台的用户输入带到主

2024-03-28 21:50:48 发布

您现在位置:Python中文网/ 问答频道 /正文

我是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
        ...

但代码一直在等待用户输入,一段时间后崩溃


Tags: 函数代码用户importselftrueinputtime
1条回答
网友
1楼 · 发布于 2024-03-28 21:50:48

我昨天也用了这个方法,但不知怎么的,它不起作用。 我只是查了一下,发现每个教程都有

t = threading.Thread(target=target_function)
t.start()
t.join()

但是我没有使用.join()方法,你也没有。也许这就是问题所在?也请给我反馈

相关问题 更多 >