Python线程 - 参数数量错误

时间:2011-09-12 19:01:12

标签: python multithreading

我在一个线程中执行一个命令,差不多有25k次,如

if threaded is True:
                thread = Thread(target=threadedCommand, args=(cmd))
                thread.start()
                thread.join()  

def threadedCommand(command):
    if command is None:
        print 'can\'t execute threaded command'
        sys.exit(-1)
    print 'executing - %s'%(command)
    os.system(command)  

和命令就像

cp file dir

我所看到的是

  

Traceback(最近一次调用最后一次):文件   “/usr/lib64/python2.6/threading.py”,第525行,在__bootstrap_inner中       self.run()文件“/usr/lib64/python2.6/threading.py”,第477行,   在奔跑       self .__ target(* self .__ args,** self .__ kwargs)TypeError:   threadedCommand()只需要1个参数(给定52个)

     

^线程中的CException Thread-9377:Traceback(最近一次调用最后一次):   文件“/usr/lib64/python2.6/threading.py”,第525行,in   __bootstrap_inner       self.run()文件“/usr/lib64/python2.6/threading.py”,第477行,   在奔跑       self .__ target(* self .__ args,** self .__ kwargs)TypeError:   threadedCommand()只取1个参数(56个给定)

1 个答案:

答案 0 :(得分:20)

args必须是元组。 (cmd)cmd相同;你想要一个单元素元组:

thread = Thread(target=threadedCommand, args=(cmd,))
#                                                ^