Zeilenumbruch 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.
Antworten
nicon
User
Beiträge: 10
Registriert: Freitag 21. September 2007, 18:09

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.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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])
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
nicon
User
Beiträge: 10
Registriert: Freitag 21. September 2007, 18:09

Vielen Dank,

so klappt es super.

Danke auch mit dem Hinweis zu readlines().

lg nicon
Benutzeravatar
HWK
User
Beiträge: 1295
Registriert: Mittwoch 7. Juni 2006, 20:44

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
Zuletzt geändert von HWK am Sonntag 23. September 2007, 19:58, insgesamt 1-mal geändert.
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Antworten