Vor mir liegt "Python - Grundlagen und Praxis" und "Python Cookbook", was aber noch nicht hilft weil ich es noch nicht schaffe umzudenken.
Ich habe ein "einfaches" Problem: Ich habe CSV Dateien die ich in Tupel zwecks logischer Vergleiche in den Speicher laden will. Nun beinhalten die Dateien leider alles mögliche an printbarem (Äü*/ \$., etc.).
Meine Frage ist: wie "entschärfe" ich den Input?
Meine ersten Versuche scheitern daran dass der Interpreter darüber meckert das ich keine codierung angegeben hätte. Der Code ist kopiert und ich wollte ihn zwecks lernen durcharbeiten nur komm ich nur bis "Zeile 9" mit der Melduing:
File "/home/user/workspace/test1/einlesen.py", line 8
SyntaxError: Non-ASCII character '\xc3' in file /home/user/workspace/test1/einlesen.py on line 8, but no encoding declared;
Hier mein kläglicher Versuch:
Code: Alles auswählen
filename = '/home/user/test/listen/test1.csv'
import string
# Liest die Datei ein
def read_file(filename):
# Separator zwischen Spalten (;)
separator = u'\u003b'
file_tab=file(filename,"r")
# Ueberspringe den Header
line=file_tab.readline()
data=[]
# Liest Zeile für Zeile ein, solange Daten da sind...
while line!="":
# row beinhaltet die Werte eine Zeile
row=[]
# Verwende das letzte Zeichen von "line" nicht, d.h. line[:-1],
# da darin der Zeilenumbruch "\n" steht
for val in string.split(line[:-1],separator):
# nur nicht-leere Spalten hinzufuegen
if string.strip(val)!="":
row.append(string.strip(val))
# Baue zweidimensionales Array auf
data.append(row)
# naechste Zeile!
line=file_tab.readline()
# schliesst das File
file_tab.close()
return data
Hat jemand einen kleinen Hinweis für mich? Ich muß mich wieder motivieren und weigere mich Python an den Nagel zu hängen.
Gruß
DP