Seite 1 von 1

csv Zeilenweise generieren

Verfasst: Donnerstag 4. März 2021, 09:18
von Sirius3
Hallo,
ich möchte einen csv-Writer als Generator benutzen:

Code: Alles auswählen

def generate_csv(entries):
    for row in entries:
        yield convert_one_row_to_csv(row, delimiter=";")
Bevor ich jetzt selbst was zusammenstricke, wollte ich fragen, ob jemand ein Modul kennt, das das kann.

Re: csv Zeilenweise generieren

Verfasst: Freitag 5. März 2021, 08:50
von narpfel
https://docs.python.org/3/library/csv.html#csv.writer hat geschrieben:csvfile can be any object with a write() method.

Code: Alles auswählen

class LineWriter:
    def write(self, s):
        return s


def generate_csv(entries):
    writer = csv.writer(LineWriter(), delimiter=";")
    for row in entries:
        yield writer.writerow(row)

Re: csv Zeilenweise generieren

Verfasst: Freitag 5. März 2021, 09:18
von Sirius3
Danke narpfel.

Wow, die Funktionalität ist ja auch dokumentiert:
csvwriter.writerow(row):
Write the row parameter to the writer’s file object, formatted according to the current dialect. Return the return value of the call to the write method of the underlying file object.
So verquer ab ich nicht gedacht.