Ich habe eine CSV-Datei mit ein paar Mustern. Ich möchte nur selektiv Zeilen in die CSV-Reader-Klasse von Python laden. Derzeit nimmt CSV nur ein Dateiobjekt. Gibt es eine Möglichkeit, dies zu umgehen?
Mit anderen Worten, was ich brauche, ist:Selektiv füttern Python CSV-Klasse mit Linien
with open('filename') as f:
for line in f:
if condition(line):
record = csv.reader(line)
Aber zur Zeit, csv-Klasse schlägt fehl, wenn es eine Linie statt eines Dateiobjekt gegeben ist.
weiterzuleiten. Es gibt ein anderes Problem. Die "Zeilen" können bis zu 16 GB groß sein. In diesem Fall werden wir die Daten nicht nach csv streamen, sondern würden effektiv warten, bis die Zeilen gefüllt sind, und dann den csv-Leser aufrufen, was schlecht ist. – sreeraag
@sreeraag Nein, es ist ein [Generatorausdruck] (https://docs.python.org/3/glossary.html#term-generator-ausdruck "Generatorausdruck"), es wird nicht ausgefüllt, sondern generiert Werte nach Bedarf. – Goyo
Einverstanden, aber aus irgendeinem Grund, nach dieser Änderung, wächst das Gedächtnis meines Prozesses ständig weiter. – sreeraag