Probleme mit split()

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.
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

Probleme mit split()

Beitragvon SteeWeeDee » Donnerstag 18. September 2008, 14:32

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!
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 18. September 2008, 14:34

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

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

Beitragvon SteeWeeDee » Donnerstag 18. September 2008, 14:46

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?
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 18. September 2008, 14:48

Meinst du:
s.reverse() reverses the items of s in place

http://docs.python.org/dev/library/stdt ... ence-types

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

Beitragvon SteeWeeDee » Donnerstag 18. September 2008, 14:52

JA das wars. So jetzt mach ich aber mal wieder alleine weiter :)
Thx
SteeWeeDee
User
Beiträge: 34
Registriert: Donnerstag 18. September 2008, 14:10

Beitragvon SteeWeeDee » Donnerstag 18. September 2008, 15:08

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()
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Donnerstag 18. September 2008, 15:26

Ja: reverses the items of s in place
siehe: [wiki]Tutorial/Listen#ReverseListeUmdrehen[/wiki]

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 18. September 2008, 15:52

``reversed()`` gibt hingegen eine invertierte Liste zurück, ohne die ursprüngliche zu verändern.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
BlackJack

Beitragvon BlackJack » Donnerstag 18. September 2008, 16:09

Böse Falle: `reversed()` gibt einen Iterator zurück. Da stolpere ich mehr oder weniger regelmässig drüber. :-)
Benutzeravatar
Leonidas
Administrator
Beiträge: 16023
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Beitragvon Leonidas » Donnerstag 18. September 2008, 16:12

BlackJack hat geschrieben:Böse Falle: `reversed()` gibt einen Iterator zurück.

Ja, stimmt. Das ärgert mich immer wieder, weil ich es mit ``sorted()`` verwechsle welches eine Liste zurückgibt.
My god, it's full of CARs! | Leonidasvoice vs Modvoice
lunar

Beitragvon lunar » Freitag 19. September 2008, 10:32

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder