Verfasst: Freitag 16. Januar 2004, 20:32
So, ich hab jetzt das Skript in der ersten Rohversion fertiggestellt. Es gibt noch an allen möglichen Stellen was zu verbessern und zu verkürzen, aber trotzdem will ich es mal hier reinstellen.
Ich hab jetzt nämlich doch nicht den Ansatz von Dookie genommen, sondern meine erste Idee, nämlich das ganze über das Modul fileinput zu machen, weiterverfolgt. Aber seht selbst...
Nochmal herzlichen Dank an alle!
Grüße, david
Ich hab jetzt nämlich doch nicht den Ansatz von Dookie genommen, sondern meine erste Idee, nämlich das ganze über das Modul fileinput zu machen, weiterverfolgt. Aber seht selbst...
Code: Alles auswählen
#!/usr/bin/env python
import os,fileinput,string,sys,math
pfad=os.listdir(os.curdir)
print pfad
zout=4
def read_line(zin):
zout=zin
l_1=[]
l_2=[]
for line in fileinput.input(pfad):
dateiname=fileinput.filename()
dateizeile=fileinput.filelineno()
if dateiname == 'zusammenzieh.py':
pass
elif dateiname == 'ausgabe.txt':
pass
else:
if dateizeile<zin:
pass
else:
data=string.split(line)
a=string.atof(data[0]) #wandelt string in float und schreibt in liste
b=string.atof(data[2])
l_1.append(a)
l_2.append(b)
fileinput.nextfile()
if 0 in l_2:
sigma=0
x=0
else:
sigma=1/(math.sqrt(1/(l_2[0]**2)+1/(l_2[1]**2)+1/(l_2[2]**2)+1/(l_2[3]**2)+1/(l_2[4]**2)))
sum_sigma_square=1/( 1/(l_2[0]**2) + 1/(l_2[1]**2) + 1/(l_2[2]**2) + 1/(l_2[3]**2) + 1/(l_2[4]**2) )
sum_x_sigma_square=l_1[0]/(l_2[0]**2) + l_1[1]/(l_2[1]**2) + l_1[2]/(l_2[2]**2) + l_1[3]/(l_2[3]**2)\
+ l_1[4]/(l_2[4]**2)
x=sum_x_sigma_square * sum_sigma_square
text=str(x) + '\t' + str(sigma)+'\n' #+'\n': fügt dem string einen zeilevorschub hinzu
output=open('ausgabe.txt','a') #a-> neue daten werden immer hinten an geschrieben
output.write(text)
output.close()
return zout
while zout < 304:
read_line(zout)
zout=zout+1
raw_input('Press Enter to terminate')
Grüße, david