Seite 1 von 1

Zeilenumbruch entfernen

Verfasst: Samstag 22. September 2007, 15:30
von nicon
Hallo Leute,

ich habe die letzten Jahre mit PHP gearbeitet und erlerne gerade Python.

Ich schreibe momentan ein GUI-Programm (QT), mit dem man die MAC-Adresse der eingebauten Netzwerkkarten ändern kann.

Das Programm funktioniert soweit sehr gut. Man kann sogar aus einer Liste von gespeicherten MACs wählen. Allerdings habe ich Probleme beim Auslesen der MAC-Adressen aus der Datei.

Beim zeilenweise Auslesen der MAC-Adresse werden die Zeilennumbrüche nicht entfernt.

Inhalt der Datei:

eth0 00:f9:96:84:3c:0e
eth0 00:d4:2a:37:8d:26
eth0 00:34:71:da:15:fd
eth1 00:05:f5:d0:1b:2f

Hier ein Codeschnipsel zum auslesen der Datei:

Code: Alles auswählen

    fp2 = open ( 'MAC_list.nml','r' )
    MACrows = fp2.readlines()
    for MACrow in MACrows:
        self.listBox1.insertItem(MACrow)
    fp2.close() 
Leider bekommt self.listBox1.insertItem(MACrow) die Zeile inkl. Umbruch /n.
Wie kann ich mir die Zeile 'MACrow' ohne Zeilenumruch ausgeben lassen?

Danke für eine Antwort.

Verfasst: Samstag 22. September 2007, 15:37
von Leonidas
Das geht etwa so, indem du einfach das letzte Element weglässt (``readlines()`` ist schon lange unnötig, da man über Dateien direkt iterieren kann):

Code: Alles auswählen

MACrows = open ('MAC_list.nml','r' )
for MACrow in MACrows:
    self.listBox1.insertItem(MACrow[:-1])
MACrows.close()
Oder mit ``with``-Statement:

Code: Alles auswählen

with open('MAC_list.nml', 'r') as MACrows:
    for MACrow in MACrows:
        self.listBox1.insertItem(MACrow[:-1])

Danke

Verfasst: Samstag 22. September 2007, 15:41
von nicon
Vielen Dank,

so klappt es super.

Danke auch mit dem Hinweis zu readlines().

lg nicon

Verfasst: Sonntag 23. September 2007, 11:44
von HWK
Manchmal steht am Zeilenende statt '\n' auch '\r\n'. Sicherer wäre deshalb wohl MACrow.rstrip(), wobei auch gleich noch andere unnötige Whitespaces entfernt würden.
MfG
HWK

Edit: Schreibfehler korrigiert

Verfasst: Sonntag 23. September 2007, 13:14
von Leonidas
HWK hat geschrieben:Manchmal steht am Zeilenende statt '\n' auch '\r\n'. Sichere wäre deshalb wohl MACrow.rstrip(), wobei auch gleich noch andere unnötige Whitespaces entfernt würden.
Ah, stimmt. Wobei man die Datei wohl auch im Universal-Newline-Mode öffnen könnte, als Alternative.