image image


Worknote: Unicode und CSV in Python 2.x

image Das Verarbeiten von Dateien mit komma-separierten Daten (CSV = comma separated value), wie sie zum Beispiel viele Tabellenkalkulationen und Datenbanken herausschreiben (können), ist eine häufige Anwendung, speziell im wissenschaftlichen Bereich. In den Naturwissenschaften ist man meistens fein raus, die Dateien enthalten in der Regel nur Zahlen und da muß man sich nicht mit Umlauten oder Akzenten herumschlagen. Anders dagegen in den Geisteswissenschaften. Um CSV-Dateien im UTF-8-Encoding zu lesen und zu schreiben, geht man in Python 2.x am Besten so vor:

# -*- coding: utf-8 -*-
import csv
import sys
import codecs

stdout_encoding = sys.stdout.encoding or sys.getfilesystemencoding()

#Unicode-Reader
def unicode_csv_reader(utf8_data, dialect='excel-tab', **kwargs):
    csv_reader = csv.reader(utf8_data, dialect=dialect, **kwargs)
    for row in csv_reader:
        yield [unicode(cell, 'utf-8') for cell in row]

reader = unicode_csv_reader(open(filename, "rU"))

for row in reader:
	ausgabe = "" # Irgendetwas mit den Daten anstellen

f = codecs.open(filename, "w", "utf-8")
f.write(ausgabe)

Das hat bei mir zumindestens bisher immer funkioniert.

(Kommentieren)  Worknote: Unicode und CSV in Python 2.x bitte flattrn




Über …

Der Schockwellenreiter ist seit dem 24. April 2000 das Weblog digitale Kritzelheft von Jörg Kantel (Neuköllner, EDV-Leiter, Autor, Netzaktivist und Hundesportler — Reihenfolge rein zufällig). Hier steht, was mir gefällt. Wem es nicht gefällt, der braucht ja nicht mitzulesen. Wer aber mitliest, ist herzlich willkommen und eingeladen, mitzudiskutieren!

Alle eigenen Inhalte des Schockwellenreiters stehen unter einer Creative-Commons-Lizenz, jedoch können fremde Inhalte (speziell Videos, Photos und sonstige Bilder) unter einer anderen Lizenz stehen.


Werbung


Werbung


image  image  image
image  image  image