Dieses Problem ist für mich nicht neu. Von C über PERL bis hin zu Python auf Windows Mobile, Windows XP und anderen Windows-Versionen tritt dieses Problem immer wieder auf und geht mir auf die Nerven.
Jetzt in meinem neuesten Skript passiert es wieder. Um konkreter zu werden: Ich habe in Python ein triviales Skript programmiert. Nun schreibt das Skript korrekt in die Datei, wenn es vom Debugger aus ausgeführt wird, aber außerhalb des Debuggers funktioniert es nicht korrekt. Es schreibt nicht in die Datei, wenn es sollte. Ich verwende Python 2.6 mit Eclipse und pydev.
Dies ist der Code
import httplib2
import thread
ht = httplib2.Http();
list = []
k = 0
def check(proxy, port):
global list
global k
try:
head = ht.request(proxy, 'HEAD')
except:
return
k = k + 1
list.append(proxy)
list.append(port)
def OnListCaller(ProxyList, OutFile, NListLen):
global list
global k
filei = open(ProxyList, 'r')
fileo = open(OutFile, 'a')
while 1:
proxy = filei.readline()
if not proxy: continue
port = filei.readline()
proxy = proxy.rstrip()
port = port.rstrip()
thread.start_new(check, (proxy, port,))
if k >= NListLen:
for t in list:
fileo.write(t + "\n")
list = []
fileo.close()
fileo = open(OutFile, 'a')
k = 0
OnListCaller('C:\proxy\input.txt', 'C:\proxy\checked.txt', 1)
Das Problem liegt im OnListCaller bei der if k>=NListLen. Die Datei sollte aktualisiert werden, wenn k >= dann ein bestimmter Wert ist. Vielen Dank an alle.