ich habe da ein kleines programm das messdaten aus einem textfile einliest und diese dann etwas anders darstellt, um sie später dann mit ANSYS als array einbinden zu können. für eine kleine testdatei funktioniert alles ohne probleme, nur bei einer tatsächlichen messdatei (so 13000+ lines) hängt sich die python shell dann auf, und zwar schon etwa ab der 120 zeile die das programm aus d messdatei einliest.
hier mal der quellcode:
Code: Alles auswählen
delimiters=[chr(9), chr(13)]
input_file=open("test.txt","r")
#output_file=open("xxx.txt","w")
#a=[]
line=input_file.readline()
while line:
i=j=0
linelenght=len(line)
for i in range(linelenght):
if line[i] in delimiters:
#a.append(line[j:i]+" ")
print Convert2Ansys(line[j:i],10,4)
#output_file.write(Convert2Ansys(line[j:i],10,4)+" ")
j=i+1
#output_file.write(Convert2Ansys(line[j:i],10,4)+"\n")
#a.append(line[j:i]+chr(13))
print Convert2Ansys(line[j:i],10,4)
line=input_file.readline()
input_file.close()
#print a
#output_file.close()
Code: Alles auswählen
def Convert2Ansys(string,w,d):
""" converts string to a fortran floatnumber Fw.d
actually only converts string to a total lenght of w characters
string: has to be alphanumeric
"""
#if string.isalnum()==False: return False
if string.find('.')!=-1: # komma-zahl ?
while len(string)!=w: # ja, einfach mit 0 auffüllen bis länge erreicht ist
string+="0"
else:
while len(string)!=w: # 0 vor der zahl einfügen
string="0"+string
return string
wo ist jetzt das problem im code ? für kurze messdateien funktionert das ohne probleme, bei langen crashd eben d. shell. und ich hab absolut keine idee warum...

ich hab schon probiert das ganze mal in ner liste anzulegen, oder eben das outputfile gleich zeilenweise zu schreiben. und selbst wenn beides nicht ausgeführt wird (die # zeilen) hängt sich die shell schon nur beim einlesen der zeilen auf. hier noch kurz ein ausschnitt einer typischen meßdatei:
130.7859 -5.503439 0.05145264
130.8374 -5.882718 0.05145264
130.8888 6.109447 0.05145264
130.9403 6.336176 0.05145264
130.9917 -6.341985 0.05145264
131.0432 6.347794 0.05143738
131.0946 6.172206 0.05145264
an der stelle an ders normalerweise abstürtzt ist auch kein besonderer zahlenwert der einen crash verursachen würde - hab den schon mal rauskopiert und separat getestet, ging auch alles fehlerfrei,
wo ist d wurm versteckt ? ich find einfach nix

danke für jede hilfreiche antwort,
holzdolph