
Moin, ich versuche mich gerade mal wieder an Python und bleibe derzeitig an zwei kleinen Problemen hängen: Ich lese eine Datei ein per: rows = f.readlines() Dabei landen die einzelnen Zeilen alle im array rows. Allerdings hat jede Zeile einen NewLine Character am Ende, den ich gerne loswerden möchte.. Des weiteren würde ich gerne wissen, wieviele Elemente das Array enthält, da die einzulesende Datei nicht fix ist in der Anzahl der Zeilen.. Ich kann zwar einfach mit for r in rows: print r, den extra Zeilenumbruch unterdrücken und gleichzeitig mir alle Zeilen anschauen, aber um die Elemente des Arrays weiter zu verarbeiten ist das leider nicht geeignet.. Könnte mir da bitte mal jemand auf die Sprünge helfen und sagen wo ich nachgucken muss? Danke, Marcus _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Marcus Franke schrieb:
Moin,
ich versuche mich gerade mal wieder an Python und bleibe derzeitig an zwei kleinen Problemen hängen:
Ich lese eine Datei ein per: rows = f.readlines()
Dabei landen die einzelnen Zeilen alle im array rows. Allerdings hat jede Zeile einen NewLine Character am Ende, den ich gerne loswerden möchte..
Hallo Markus! Verwende vom String r ein Scheibchen, also slice, ohne das letzte Zeichen:
row = "A, be, bu\n" row 'A, be, bu\n' row[-1] # letztes Element von row '\n' row[:-1] # Slice vom Anfang bis zum vorletzten Element von row 'A, be, bu'
und wieviele Strings in dieser Liste rows stehen kriegst du mit der Funktion len() heraus: len(rows) hdh, Gregor
Des weiteren würde ich gerne wissen, wieviele Elemente das Array enthält, da die einzulesende Datei nicht fix ist in der Anzahl der Zeilen..
Ich kann zwar einfach mit
for r in rows: print r,
den extra Zeilenumbruch unterdrücken und gleichzeitig mir alle Zeilen anschauen, aber um die Elemente des Arrays weiter zu verarbeiten ist das leider nicht geeignet..
Könnte mir da bitte mal jemand auf die Sprünge helfen und sagen wo ich nachgucken muss?
Danke, Marcus
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Ok, den ersten Teil habe ich inzwischen gelöst: len(rows) Aber wie werde ich das \n los? Marcus -----Original Message----- From: python-de-bounces+marcus.franke=gmx.net@python.net [mailto:python-de-bounces+marcus.franke=gmx.net@python.net] On Behalf Of Marcus Franke Sent: Freitag, 1. August 2003 11:18 To: python-de@python.net Subject: [Python-de] Frage zu strings und arrays Moin, ich versuche mich gerade mal wieder an Python und bleibe derzeitig an zwei kleinen Problemen hängen: Ich lese eine Datei ein per: rows = f.readlines() Dabei landen die einzelnen Zeilen alle im array rows. Allerdings hat jede Zeile einen NewLine Character am Ende, den ich gerne loswerden möchte.. Des weiteren würde ich gerne wissen, wieviele Elemente das Array enthält, da die einzulesende Datei nicht fix ist in der Anzahl der Zeilen.. Ich kann zwar einfach mit for r in rows: print r, den extra Zeilenumbruch unterdrücken und gleichzeitig mir alle Zeilen anschauen, aber um die Elemente des Arrays weiter zu verarbeiten ist das leider nicht geeignet.. Könnte mir da bitte mal jemand auf die Sprünge helfen und sagen wo ich nachgucken muss? Danke, Marcus _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Marcus Franke schrieb:...
leider nicht geeignet..
Könnte mir da bitte mal jemand auf die Sprünge helfen und sagen wo ich nachgucken muss?
Ja, und nachschauen musst du in der Python-Dokumentation in der Library Reference unter sequence-types, etwa hier: http://www.python.org/doc/current/lib/typesseq.html und wahrscheinlich bald auch hier: http://www.python.org/doc/current/lib/string-methods.html Gregor
Danke, Marcus
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
_______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Am Fre, 2003-08-01 um 11.18 schrieb Marcus Franke:
Moin,
ich versuche mich gerade mal wieder an Python und bleibe derzeitig an zwei kleinen Problemen hängen:
Ich lese eine Datei ein per: rows = f.readlines()
Dabei landen die einzelnen Zeilen alle im array rows. Allerdings hat jede Zeile einen NewLine Character am Ende, den ich gerne loswerden möchte..
z. B.
rows =[row[:-1] for row in rows]
falls du auch noch anderen whitespace loswerden willst:
rows = [row.rstrip() for row in rows]
Da newline nur am ende deiner Strings auftauchen kann, kannst du auch folgendes tun:
rows = [row.replace("\n","") for row in rows]
Wenn du wissen moechtest, was man mit strings noch so machen kann, schau mal in's string module oder mache dir("").
Des weiteren würde ich gerne wissen, wieviele Elemente das Array enthält, da die einzulesende Datei nicht fix ist in der Anzahl der Zeilen..
len(rows) Mfg, Andreas _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de

Andreas Kuntzagk schrieb:
Am Fre, 2003-08-01 um 11.18 schrieb Marcus Franke:
Moin,
ich versuche mich gerade mal wieder an Python und bleibe derzeitig an zwei kleinen Problemen hängen:
Ich lese eine Datei ein per: rows = f.readlines()
Dabei landen die einzelnen Zeilen alle im array rows. Allerdings hat jede Zeile einen NewLine Character am Ende, den ich gerne loswerden möchte..
z. B.
rows =[row[:-1] for row in rows]
Das würde ich nicht empfehlen, wer sagt denn, das die letzte Zeile der Datei auch mit \n endet? Wenn nicht verlierst Du ein Zeichen der letzten Zeile. Die untenstehenden Varianten haben das Problem nicht.
falls du auch noch anderen whitespace loswerden willst:
rows = [row.rstrip() for row in rows]
Da newline nur am ende deiner Strings auftauchen kann, kannst du auch folgendes tun:
rows = [row.replace("\n","") for row in rows]
....
MfG Rene Liebscher _______________________________________________ Python-de maillist - Python-de@python.net http://python.net/mailman/listinfo/python-de
participants (4)
-
Andreas Kuntzagk
-
Gregor Lingl
-
Marcus Franke
-
René Liebscher