split() und "leere" Tab

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
JoHo
User
Beiträge: 5
Registriert: Montag 18. April 2005, 16:43
Kontaktdaten:

Hallo!
Ich versuche eine .txt-Datei einzulesen und die mit tabs getrennten Werte einer Liste, bzw später einer Zelle in Excel zuzuordnen. Problem an der Datei ist, dass manche Spalten keine Werte enthalten, sodass der nächste Wert eine Spalte früher eingeordnet wird.

Wie bring ich dem Script bei, dass auch ein leerer Tab ein leerer Wert ist und eingetragen wird??

Hier mal mein Script:

Code: Alles auswählen

f = open("gm.txt") 
line = f.readline()
import pyXLWriter as xl
workbook = xl.Writer("test.xls")
worksheet = workbook.add_worksheet('Koordinaten')
k=0
while line:
    daten = line.split()
    for i in range(len(daten)):
        wert = daten[i]
        worksheet.write([k,i], wert)
    line = f.readline()
    k=k+1
    print "okay" , k , i
    
f.close()
workbook.close()
Und ein Auszug aus der Datei:

Code: Alles auswählen

RC	UFI	UNI	LAT	LONG	DMS_LAT	DMS_LONG	UTM	JOG	FC	DSG	PC	CC1	ADM1	ADM2	DIM	CC2	NT	LC	SHORT_FORM	GENERIC	SORT_NAME	FULL_NAME	FULL_NAME_ND	MODIFY_DATE
1	-1736590	-2433043	51.7166667	9.0666667	514300	90400	NC02	NM32-02	H	STM		GM	07				N				AA	Aa	Aa	1994-01-08
1	-1736591	-2433044	52.0833333	7.6166667	520500	73700	MC07	NN32-10	H	STM		GM	07				N				AA	Aa	Aa	1994-01-08
sind insgesamt 3 Zeilen..


Gruß joho

Edit (Leonidas): Code in Python-Tags gesetzt.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Was passiert wenn du mit daten = line.split("\t") arbeitest???

Oder was ist hier mit: http://www.python-forum.de/viewtopic.php?p=19986#19986

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
JoHo
User
Beiträge: 5
Registriert: Montag 18. April 2005, 16:43
Kontaktdaten:

jens hat geschrieben:Was passiert wenn du mit daten = line.split("\t") arbeitest???
danke damit funktionierts!
Antworten