Python中的常量后台函数和全局变量?

Python中的常量后台函数和全局变量?,python,global-variables,polling,Python,Global Variables,Polling,我有一个简单的函数,可以轮询文件夹,并在检测到新文件时加载新文件: raw = [] def poll_file(mydir, raw) while 1: after = dict([(f, None) for f in os.listdir(mydir)]) added = [f for f in after if f not in before] # New File if added: ra

我有一个简单的函数,可以轮询文件夹,并在检测到新文件时加载新文件:

raw = []

def poll_file(mydir, raw)
    while 1:
        after = dict([(f, None) for f in os.listdir(mydir)])
        added = [f for f in after if f not in before]

        # New File
        if added:
            raw.append(numpy.loadtxt(mydir + added[0]))

            # Set Trigger
            if raw[-1] > 5:
                trigger = 1

return trigger
在我的主脚本中,在某些时间点,我希望等待
trigger
变为'1',但有时我不关心
trigger
是什么,我希望我的变量
raw
继续附加来自新文件的新数据

所以,我有两个问题

  • 如何开始在后台运行python函数

  • 如何将
    trigger
    设置为可以在主脚本中读取然后重置为0的全局变量,如:

    触发时!=1:
    #在触发器==1之前不执行任何操作
    触发器=0

  • 如何在后台停止常量函数并最终将
    raw
    保存到pickle文件?我假设我将它设置为一个全局变量


  • 2.如果要在函数中分配触发器,请将其声明为全局触发器。否则,LEGB范围规则适用。我在哪里定义变量global?在我的主脚本中,还是在我想在后台运行的函数中?看看这个库:在函数中声明它是全局的(请注意,在99%的情况下,可以而且应该避免全局变量)。如果您使用的是Python3,您还可以选择使用
    非本地
    ,这取决于您的设计。见此:见此问题/答案: