fehler meldung

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
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

hallo zusammen
ich hab eine fehler meldung bei der ich nicht weiss was es sein kann

string or unicode type required

dies kommt raus wen ich von einer text datei auslese und da den ihhalt in einen textCtrl schreiben will

Code: Alles auswählen

 
self.mylist = wx.TextCtrl(self.panel,wx.ID_ANY,(400,230),wx.Size(120,130))

feld = codes.open("test.dat","r", "utf-8")
self.daten = feld.readlines()
feld.close()
self.mylist.WriteText(self.daten) 

ich bedanke mich schon mal im voraus
mfg
Benutzeravatar
Defnull
User
Beiträge: 778
Registriert: Donnerstag 18. Juni 2009, 22:09
Wohnort: Göttingen
Kontaktdaten:

Ja nu rate mal, was feld.readlines() zurück gibt?
Bottle: Micro Web Framework + Development Blog
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Oder lies nach: http://docs.python.org/library/stdtypes ... .readlines

Ausserdem, solltest du `with` zum Oeffnen benutzen, oder zumindest ein `try/finally`-Konstrukt.
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

etwas was kein string oder unicode ist?
aber wie kann ich das den ändern?
ich seh weiss echt nicht wie das gehen soll?
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

zahi hat geschrieben:etwas was kein string oder unicode ist?
Das ist richtig. Um herauszufinden was du da eigentlich hast kannst du erstens wie von cofi vorgeschlagen in die Dokumentation schauen was readlines() zurückliefert und zweitens die Funktion type() verwenden.
zahi hat geschrieben:aber wie kann ich das den ändern?
ich seh weiss echt nicht wie das gehen soll?
Lerne Python. Bei mir war das zumindest das was geholfen hat.

http://wiki.python.org/moin/BeginnersGuide
http://docs.python.org/tutorial/index.html
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

ich bin es grad am lernen und ich verzweifle an solchen stellen
ich verwende linux zum editieren verwende ich eric
aber ich verstehe nix mit den fehler meldungen anzufangen ...
ihr habt mir grad zahlreiche tipps gegeben und ich hab nacheinander es ausversucht und bekomme immer noch fehler ich hab mit read auch versucht aber irgend wie find ich den fehler nicht
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

Wo genau wird der Fehler denn geworfen? Und was sagt Dir type()?
INFACT
User
Beiträge: 385
Registriert: Freitag 5. Dezember 2008, 16:08

Code: Alles auswählen

 
self.mylist = wx.TextCtrl(self.panel,wx.ID_ANY,(400,230),wx.Size(120,130))

feld = codes.open("test.dat","r", "utf-8")
self.daten = feld.readlines()
feld.close()
self.mylist.WriteText("\n".join(self.daten)) # <- Da
self.daten ist eine liste. mit "\n".join(self.daten) wird jede zeile mit einem newline am ende verbunden und alles zusammengefügt:

self.daten ist zum beispiel:
["zeile 1", "zeile 2", "zeile 3"]
und die join methode macht das daraus:
zeile 1\nzeile 2\nzeile 3
\n ist ein newline, also ein "enter" zeichen.

Wenn du windows benutzt solltest du "\n" durch "\r\n" ersetzten.
[b][i]ein kleines game für die die lust haben http://konaminut.mybrute.com[/i][/b]
;-)
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

hey ich hab es geschaft mit read () und anstatt eine textCtrl hab ich einfach eine listctrl genommen weil ich eh eine list speichern wollte
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

INFACT hat geschrieben:Wenn du windows benutzt solltest du "\n" durch "\r\n" ersetzten.
Nein, generell sollte man `os.linesep` benutzen. Oder `open(fname, 'rU')`
zahi
User
Beiträge: 36
Registriert: Montag 26. Oktober 2009, 17:10

ich danke für diese ausführliche hilfe das hat mir sehr viel geholfen
Antworten