そこで、暇なときにクラッカーのようなマルチスレッド プログラムを作成しました。それが行うことは、 File1 から行を読み取り、 File2 を反復処理し、 File2 からデータの各行を取得し、 File1 と File2 から取得したデータを Web ページに送信し、特定の応答を取得することです。以下は私がしたことの例です。
import urllib2
import thread
import threading
lock = threading.Lock()
def check(data1, data2):
specificdata = "specific"
dataone = data1.replace("\n", "")
datatwo = data2.replace("\n", "")
link = "http://webpage.com/?data1=" + dataone + "&data2=" + datatwo
response = urllib.urlopen(link).read()
lock.acquire()
if specificdata in response:
print "Success!"
else:
print "Failed!"
lock.release()
data1list = raw_input("Data One List Path: ")
data2list = raw_input("Data Two List Path: ")
print ""
data1file = open(data1list, 'r')
for data1 in data1file:
if data1 == "\n":
break
else:
data2file = open(data2list, 'r')
for data2 in data2file:
if data2 == "\n":
break
else:
thread.start_new_thread(check,(data1, data2))
data2file.close()
コードはIDLEで実行すると機能しますが、パスを入力した後、ファイルをダブルクリックすると機能しません。エラーメッセージがスパムになるだけです(「FAILED BEFORE CHECK()」または「FAILED IN CHECK()」ではありません)。何が起こっているのか見る前に閉じてしまいます。問題は何ですか?
----------------------編集----------------------
私はなんとかエラーを取得し、それは言う
sys.excepthook によって開始されたスレッドの未処理の例外に失われた sys.stderr がありません
これを解決する方法はありますか?
----------------------解決方法----------------------