Textdateien zusammenfuehren

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
david
User
Beiträge: 30
Registriert: Montag 12. Januar 2004, 14:40

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...

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')


Nochmal herzlichen Dank an alle!

Grüße, david
Antworten