Ich muss eine große CSV-Datei fast von 100K Zeilen in der Datei lesen, auch wird es sehr einfach sein, diese Datei zu verarbeiten, wenn ich jede Dateizeile in einem Wörterbuchformat lesen kann.Speichert csv.DictReader Datei im Speicher?
Nach wenig Forschung fand ich Pythons eingebaute Funktion csv.DictReader aus dem CSV-Modul.
Aber in der Dokumentation ist nicht klar, ob es die gesamte Datei im Speicher speichert oder nicht.
Aber es hat erwähnt, dass:
Die Feldnamen Parameter eine Sequenz, deren Elemente ist mit den Bereichen der Eingangsdaten zugeordnet ist, um.
Aber ich bin nicht sicher, ob die Sequenz im Speicher gespeichert ist oder nicht.
Die Frage ist also, speichert es ganze Datei im Speicher?
Wenn ja, gibt es eine andere Option zum Lesen einer einzelnen Zeile als Generaror-Ausdruck aus der Datei und Lesen der Zeile als dict.
Hier ist mein Code:
def file_to_dictionary(self, file_path):
"""Read CSV rows as a dictionary """
file_data_obj ={}
try:
self.log("Reading file: [{}]".format(file_path))
if os.path.exists(file_path):
file_data_obj = csv.DictReader(open(file_path, 'rU'))
else:
self.log("File does not exist: {}".format(file_path))
except Exception as e:
self.log("Failed to read file.", e, True)
return file_data_obj