Python线程全局变量问题

时间:2014-04-16 15:35:08

标签: python multithreading global-variables

我有一些我想要同时运行的脚本,他们读取了一个CSV文件,即时尝试以下内容;

import sys
import csv

out = open("C:\PYDUMP\PYDUMPINST.csv","r")
dataf=csv.reader(out)

for row in dataf:
    take   = row[0]
    give   = row[1]


def example():

      try:
          lfo = int(take)
          if lfo > 0:

          #code

      except Exception, e:
          pass    
example()

保存为takefile1.py。我有20个脚本具有类似的结构,我想同时运行。所以我正在使用(我一直用于运行其他批次的脚本无故障)以下内容;

import csv
import sys
from threading import Thread


def firstsend_lot():

        execfile("C:\Users\takefile1.py")                                    

        execfile("C:\Users\takefile2.py") 


def secondsend_lot():  


        execfile("C:\Users\takefile3.py")                                    

        execfile("C:\Users\takefile4.py") 


if __name__ == '__main__':
    Thread(target = firstsend_lot).start()
    Thread(target = secondsend_lot).start()

所以我收到错误"全球名称'采取'未定义"。有人有什么建议吗?我对Python很无望,所以假装你正在和一个白痴说话。

1 个答案:

答案 0 :(得分:0)

你的函数example(),没有访问权限。尝试在其中添加一行:

def example():
      global take
      try:
          lfo = int(take)
          if lfo > 0:

          #code

      except Exception, e:
          pass