Ich schreibe gerade an einer Implementierung mit der ich aus einer QListBox (Name: clientBox) die Zeile auswähle welche ich anpingen will, auswähle.
Da die Zeile im Format
Host camfuew6.voip (192.168.0.14)
vorliegt dachte ich mir ich splite sie einfach auf und nehm mir den IP Teil zum pingen.
Hier der Programmteil:
def ping(self):
import StringIO
import string
pseudodatei = StringIO.StringIO()
t = self.clientBox.currentText()
ip = t.split()
print ip
Doch beim Ausführen kommt die Fehlermeldung:
Traceback (most recent call last):
File "/home/stephan/gui_test.py", line 240, in ping
ip = t.split()
AttributeError: split
Ich will nach Spaces trennen also muss ich doch nichts angeben. Habe split ja schon öfter verwendet deswegen weiß ich wohl nicht woran es liegt das es nicht funktioniert.
Ich hoffe ihr könnt mir weiter helfen!
Probleme mit split()
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Dann liefert wohl self.clientBox.currentText() keinen String zurück. Mach mal ein print type(t), repr(t) vor dem split.
btw: Bitte beachten: http://www.python-forum.de/faq.php#21
btw: Bitte beachten: http://www.python-forum.de/faq.php#21
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
hatte es schon mit print ausgegeben - aber es war so wie man sich einen String vorgestellt.
Leider war der Type von t ein QString und somit konnte man es nicht splitten Aber jetzt gehts.
Noch schnell eine kleine Frage: Gibt es eine invert - Funktion für Listen? Das z.B. hier die IP Adresse an erster Stelle steht und nicht an letzter?
Leider war der Type von t ein QString und somit konnte man es nicht splitten Aber jetzt gehts.
Noch schnell eine kleine Frage: Gibt es eine invert - Funktion für Listen? Das z.B. hier die IP Adresse an erster Stelle steht und nicht an letzter?
- jens
- Python-Forum Veteran
- Beiträge: 8502
- Registriert: Dienstag 10. August 2004, 09:40
- Wohnort: duisburg
- Kontaktdaten:
Meinst du:
http://docs.python.org/dev/library/stdt ... ence-typess.reverse() reverses the items of s in place
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
JA das wars. So jetzt mach ich aber mal wieder alleine weiter
Thx
Thx
-
- User
- Beiträge: 34
- Registriert: Donnerstag 18. September 2008, 14:10
reverse() klingt gut aber liefert mir None zurück - eine Idee warum?
Code: Alles auswählen
def ping(self):
import StringIO
import string
pseudodatei = StringIO.StringIO()
t = self.clientBox.currentText()
t = str(t)
ip = t.split()
print ip.reverse()
Böse Falle: `reversed()` gibt einen Iterator zurück. Da stolpere ich mehr oder weniger regelmässig drüber.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, stimmt. Das ärgert mich immer wieder, weil ich es mit ``sorted()`` verwechsle welches eine Liste zurückgibt.BlackJack hat geschrieben:Böse Falle: `reversed()` gibt einen Iterator zurück.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
@OP
Sag mal, warum so kompliziert?
Wieso implementierst du nicht einfach ein Modell, dass die IP-Adresse in einer separaten Spalte oder z.B. als "UserRole" zurückgibt? Dann kannst du die Anzeige auch mal anpassen, ohne gleiche deine Logik ändern zu müssen.
Sag mal, warum so kompliziert?
Wieso implementierst du nicht einfach ein Modell, dass die IP-Adresse in einer separaten Spalte oder z.B. als "UserRole" zurückgibt? Dann kannst du die Anzeige auch mal anpassen, ohne gleiche deine Logik ändern zu müssen.