Hallo an alle im Python-Forum,
als Chemie-Student soll ich zur Auswertung von Messdaten eine spezielle Software namens PyMca verwenden. Dieses pythonbasierte Programm kann normalerweise einfach installiert werden und anschließend lassen sich die Daten (Spektren), welche zuvor aus der Mess-Software als Ansi file (.txt) exportiert wurden öffnen.
Leider erhalte ich auf meinem Laptop sowie und meinem Computer zu Hause folgende Fehlermeldung:
Traceback (most recent call last):
File "build\PyMca\QSourceSelector.py", line 140, in _openFileSlot
File "build\PyMca\QSourceSelector.py", line 216, in _openFile
UnicodeEncodeError: 'ascii' codec can't encode character u'\xfc' in position 29
ordinal not in range(128)
Auf meinem Laptop sind Python 2.6 und 2.7 installiert.
Ich habe bereits versucht die Ursache nachzuvollziehen, doch da ich nahezu keine Kenntnisse zur Programmierung aufweise, scheitere ich dabei.
Andere Mitarbeiter der Universität haben das Programm ebenfalls einfach installiert und können die selben Dateien einfach öffnen.
Offensichtlich handelt es sich um ein Kodierungsproblem von Zeichensätzen. Kann mir jemand näheres dazu sagen?
Vielen Dank im Vorraus
Gruß Mario
Encoding-Fehler in PyMca
-
Chemlab1982
- User
- Beiträge: 2
- Registriert: Donnerstag 12. Mai 2011, 13:27
Hallo mkesper,
leider nicht. Die Daten bestehen lediglich aus zwei Datenreihen die durch ein Semikolon als Separator. Beim schreiben der Antwort fiel mir ein das im Dateipfad ein Umlaut auftauch und das war der Grund.
Danke für deine Hilfe und schnelle Antwort.
Gruß Mario
leider nicht. Die Daten bestehen lediglich aus zwei Datenreihen die durch ein Semikolon als Separator. Beim schreiben der Antwort fiel mir ein das im Dateipfad ein Umlaut auftauch und das war der Grund.
Danke für deine Hilfe und schnelle Antwort.
Gruß Mario
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Ich habe mir den Quellcode (aktuelle Version auf sourceforge) mal angeguckt und konnte da den Fehler nicht nachvollziehen. Augenscheinlich wird da Python3 verwendet. Evtl. schlägt da das Problem zu Buche, dass bei einem `print` die Unicodestrings sich nicht nach dem Shell-Encoding richten? Iirc hatten wir diese Problematik mal vor einigen Wochen besprochen.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
- Hyperion
- Moderator
- Beiträge: 7478
- Registriert: Freitag 4. August 2006, 14:56
- Wohnort: Hamburg
- Kontaktdaten:
Kann sein, dass die aktuelle Version bereits Python3 verwendet und der OP eine andere benutzt. Oder aber die Entwickler sind dermaßen schlecht, dass sie `print` als Funktion tarnen, indem sie Tupel ausgeben...mkesper hat geschrieben:Seltsam, der OP verwendet nach seinen Angaben Python 2.x.
encoding_kapiert = all(verstehen(lesen(info)) for info in (Leonidas Folien, Blog, Folien & Text inkl. Python3, utf-8 everywhere))
assert encoding_kapiert
assert encoding_kapiert
