Ich habe ein Problem mit einem Programm, das ich schreiben will.
Das Programm dient dazu, in eine Datei (nennen wir sie "test") Zusatzinformationen zu schreiben,
die noch nicht vorhanden sind.
Die Datei(test) in die schreiben will, enthält neben anderen Informationen, Geburtsdaten von Personen.
An diese Geburtsdaten sollen jetzt die dazugehörigen Namen angehängt werden.
In meinem File(test) stehen die Geburtsdaten so: ... 79-1219 .....
Dazu bekomm ich aus einer Datenbank eine Exceltabelle, wobei die erste Spalte das Geburtsdatum enthält
(welches auch in dem File "test" steht) und die zweite Spalte den jeweiligen Namen dazu.
z.B. so: Spalte1 = 79-01219, Spalte2 = Andreas.
Die Liste der Geburtsdaten in der Exceltabelle ist immer gleich lang. Es kommt allerdings auch vor,
dass in der Exceltabelle manchmal kein Name in einer zeile der spalte steht.
Auf jeden Fall, will ich die Namen in dieser Form in meinem File "test" anhängen : 79-1219_Andreas.
Wie man sieht, ist das Datum in der Exceltabelle mit einer zusätzlichen 0 versehen, da diese stört,
habe ich sie im folgenden Programm entfernt, die Länge des Datums ist ja immer gleich.
Ich habe jetzt schon mal in meinem Programm zwei Listen.
In der einen Liste, habe ich aus der Exceltabelle die erste Spalte (Geburtsdaten) ausgelesen
und die überflüssige 0 entfernt.
In der anderen Liste, habe ich aus der Exceltabelle die zweite Spalte ausgelesen (Namen)
(Dort wo kein Wert (Name) zum Datum steht, wird eine Leere Zeile ausgegeben).
Meine Frage ist nun:
Wie kann ich die Werte, der einen Liste (Geburtsdaten) in dem File(test) suchen und dort
die Werte der zweiten Excelspalte mit Trennung durch ein "_"hineinschreiben?
Hat da vielleicht jemand eine Idee oder nen Vorschlag?
Vielen Dank im voraus.
Mein Code, den ich schon hab:
Code: Alles auswählen
import xlrd
import sys
ergebnis=[]
f = open ("test","a+")
o = open ("out.txt","w")
s = f.read()
f.close()
book = xlrd.open_workbook("1.xls")
sheets = book.sheets()
for sheet in sheets:
cols = sheet.ncols
rows = sheet.nrows
#zeile mit Geburtstagen n dieser Form:00-01912
out= str(sheet.col_values(0))
#zeile mit Name :Andreas
out2= str(sheet.col_values(1))
erstezeile=out.split(",")
zweitezeile=out2.split(",")
#da immer u vorher ausgegeben wird muß dieses für die Suche entfernt werden
zeile=erstezeile[0].find("u")
zeile1=[]
for i in range (0,len(erstezeile)):
zeile1 += [erstezeile[i][zeile+2:]]
#entfernen von der überflüssigen 0:damit diese Ausgabe:00-1912
zeileeins=[]
for i in range (0,len(erstezeile)):
zeileeins+=[ zeile1[i][0:4]+zeile1[i][5:-1]]
#ebenfalls entfernen des u
zeilezwei=zweitezeile[0].find("u")
zeile2=[]
for i in range (0,len(zweitezeile)):
zeile2 += [zweitezeile[i][zeilezwei+2:-1]]
outtext = "\n".join(ergebnis)
sys.stdout.write(outtext)
o.write(outtext)
o.close()