Code: Alles auswählen
# test.csv
pos-x;pos-y;pos-z
23,009;-14,234;8,123
-1.298,55;0,6;4.233,776
Code: Alles auswählen
#!/usr/bin/env python
import locale
import csv
locale.setlocale(locale.LC_ALL, 'de_DE.utf8')
def main():
x_collecrtion = []
with open('test.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile, delimiter=';')
for row in reader:
print(row['pos-x'], row['pos-y'], row['pos-z'])
x_collecrtion.append(locale.atof(row['pos-x']))
# x_collecrtion.append(float(row['pos-x']))
print(x_collecrtion)
if __name__ == '__main__':
main()
Auf was bezieht sich die setlocale ueberhaupt? Einstellung in der Umgebung? Nur auf das Script zur Laufzeit bezogen? Nur auf locale.atof bezogen?
Warum funktioniert das Umwandeln per float in dem Fall nicht?
Was sagt das utf8 in de_DE.utf8 aus (s.O., scheint sich am eigentlichen Encoding nicht zu stoeren)?
Wenn ich nun die csv mal so oder mal so bekomme, wie kann ich das Format auf jeden Fall sicher erkennen und umwandeln?