carriage return entfernen...

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

Hi!
raist1314 hat geschrieben:Warum keine regulären Ausdrücke?
Warum reguläre ausdrücke? Für schlichte textersetzung ist das overkill.
Zumdem löscht dein regexp nur "\r\n", rstrip("\r\n") dagegen auch "\n" (oder auch "\r"), wenn es alleine am zeilenende ist.
joe
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

joe hat geschrieben: Warum reguläre ausdrücke? Für schlichte textersetzung ist das overkill.
Overkill??? aber es funktioniert wenigstens... Pfffff.... reguläre Ausdrücke Overkill...
joe hat geschrieben: Zumdem löscht dein regexp nur "\r\n", rstrip("\r\n") dagegen auch "\n" (oder auch "\r"), wenn es alleine am zeilenende ist.
Es sollte nicht schwierig sein, den Ausdruck so hinzukriegen...

Sebastian
joe

Hi!
raist1314 hat geschrieben:Overkill??? aber es funktioniert wenigstens... Pfffff.... reguläre Ausdrücke Overkill...
Bitte konkret: Wo siehst du den vorteil von link = re.sub("[\r\n]*$","",link) gegenüber link = link.rstrip("\r\n")? rstrip() ist imho lesbarer und - wenn denn wichtig - auch schneller. Und wenn bei nons rstip() nicht funktioniert, dann deine lösung unter garantie auch nicht. Funktional ist da kein unterschied.
joe
raist1314
User
Beiträge: 52
Registriert: Dienstag 21. September 2004, 06:58
Wohnort: Adelzhausen
Kontaktdaten:

Ok,Ok ... in dem simplen Fall wirst Du wohl recht haben, ich persönlich würde für Textmanipulationen immer reguläre Ausdrücke verwenden, das hat sich irgendwie so bei mir eingeschliffen. Wie es mit dem Geschwindigkeitsvorteil von rstrip aussieht, kann ich nicht beurteilen, da ich mir die Implementierung jetzt nicht angesehen habe...

Gruss

Sebastian
Gast

hihi...

...schuldigung, dass ich mich so lange nicht gemeldet habe, aber konnte keine weiteren tests fahren, daher erst jetzt meine antwort.
es klappt immernoch nicht. weder mit regex noch irgendwie anders.
die liste hätte ich gerne danach noch, darum das blöde rumindexieren.
bin echt überfragt. habe langsam das gefühl, die python version aufm server
is sehr fehlerhaft. es gab da bei anderen skripten unter python2.4 schon sehr merkwürdige fehler.
da ich in verbindung mit zope arbeite bin ich z.z. leider noch auf 2.4 angewiesen, bis der admin die version umbiegt. werde jetzt versuchen aus 2.4 heraus das skript unter 2.3 zu fahren. habe so das gefühl das könnte klappen. sage dann bescheid.

danke für die vielen tips...
ciao
nons
joe

Anonymous hat geschrieben:bin echt überfragt. habe langsam das gefühl, die python version aufm server
is sehr fehlerhaft. es gab da bei anderen skripten unter python2.4 schon sehr merkwürdige fehler.
Zumindest bei solch simplen aufgabestellungen (string-manipuliation) liegt man mit dem gefühlt in 99,98% der Fälle falsch.

Was ist denn mit meinem einwand vom 31.Okt 22.08Uhr, daß deine beispielausgabedatei nicht mit deiner fehlerbeschreibung zusammenpaßt? Aber wirklich hilfreich wäre wirklich, wenn du ein teil der eingabedatei und den resultierenden ausgabeteil postest. An "blubbblubb" kann man schlecht erkennen, wo nun die "HTTP"s und "FTP"s standen.

joe
Gast

...tja.. hüstel. wie war das mit der programmlogik. :)
wenn ich das rstrip nur im if mache und nich bei jedem for durchlauf, dann hab ichs nich anders verdient.
allerdings glaube ich immernoch, dass die python version spinnt (vergl. dazu
http://python.sandtner.net/viewtopic.ph ... a336186657)

naja jetzt scheint es zu klappen.. puhh

vielen dank an alle
nons
Gast

...da fällt mir noch ne kleine frage ein:

wo ist eigentlich der sinn dabei, dass die zeilenumbrüche nicht entfernt werden wenn man readlines() aus einer datei macht?
joe

Hallo!
Anonymous hat geschrieben:wo ist eigentlich der sinn dabei, dass die zeilenumbrüche nicht entfernt werden wenn man readlines() aus einer datei macht?
Steht in der doku zu readline() unter "2.3.9 File Objects", bzw. in der fußnote 2.11 auf der selben seite.
joe
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

nons hat geschrieben:...habe das problem, dass ich nach einlesen einer textdatei in eine liste die carriage return's nicht aus den strings entfernen kann.
Hi nons!

Ich habe jetzt nicht alle Beiträge dieses Themas durchgelesen. Aber hier noch mein Senf dazu.

Code: Alles auswählen

f = file("dateiname.txt", "rU")
lines = [ line.strip() for line in f.readlines() ]
f.close()
print lines
mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Gast

joe hat geschrieben:Hallo!
Steht in der doku zu readline() unter "2.3.9 File Objects", bzw. in der fußnote 2.11 auf der selben seite.
joe
alles klar.. danke...

ciao
nons
Antworten