2016-07-14 6 views
1

複数のスレッドを生成しようとしていますが、それぞれがリストの項目を処理する関数を呼び出しています。以下のイラストは、私は次のエラーが表示されていると私は完全になぜTypeError: stuff() takes exactly 1 argument (56 given)確信していません。以下のコードは、アイデアの機能をテストするスニペットです。続行する前に、各スレッドがまだアクティブであることを確認します(エラーの原因が識別されると、これは後になります)。どんな援助も実現されるだろう。私はスレッドが引数として引数を取ると考えていますが、これが原因である可能性があります(ファイル名は分割されています)が、どのようにリストを作成するのかわかりません。項目を関数にパースできない場合。複数のワーカーがリストの項目にある

def stuff(filename): 
    Stuff done to filename 


threads = [] 
for filename in file_list: #File list contains list of full path filenames. 
    thread1 = threading.Thread(target=stuff, args=(filename)) 
    threads.append(thread1) 
    thread1.start() 

答えて

2

argsにタプルを渡す必要があります。カンマなしで,、それはタプルではありません - それはカッコで囲まれた単なる式です。

thread1 = threading.Thread(target=stuff, args=(filename,)) 
                 ^^^ 
+0

Doh!ありがとう、笑 – iNoob

関連する問題