2016-07-10 13 views
0

ich eine CSV-Datei haben (mit dem Namen „test.csv“) enthält diese Liste mit Tupeln:CSV-Datei in eine Liste in Python

[('calculation', 1468171987.4406562, None), ('calculation', 1468171988.5840397, None), ('calculation', 1468171989.8159678, 1.9041595458984375)]5)] 

Wie kann ich diese CSV-Datei importieren und seinen Inhalt auf eine Liste speichern wie folgt aus:

record = [] 

nach dem Import

record = [('calculation', 1468171987.4406562, None), ('calculation', 1468171988.5840397, None), ('calculation', 1468171989.8159678, 1.9041595458984375)] 

das ist, was ich versucht:

import csv 
    with open ("test.csv", 'rb') as f: 
     reader = csv.reader(f) 
     record = reader 

Versuch 2:

import csv 

with open ("test.csv", 'rb') as f: 
    reader = csv.reader(f) 
    record = list(reader) 

Dann bekomme ich diesen Fehler:

_csv.Error: iterator should return strings, not bytes (did you open the file in text mode?) 
+0

Sie müssen Leitungen mit dem Leser lesen. Einfachster Weg: 'record = list (reader)'. – alexis

Antwort

0

Sie ast.literal_eval verwenden können

import ast 
with open ("test.csv", 'r') as f: 
    for line in f: 
     list = ast.literal_eval(line) 
     print list 
+0

Das ist mir diesen Fehler gibt: Valueerror: malformed Knoten oder string: b "[('Berechnung', 1468177461,191623, 2,616061210632324), ('Berechnung', 1468177463,8076842, None), ('Berechnung', 1468177466,2713623, None)]" Haben Sie Wissen, was los ist? – kjf545

+0

Welche Python-Version verwenden Sie? Mit 2.7.6 bemerke ich keinen solchen Fehler. Ich habe den Code mit geringfügigen Änderungen bearbeitet. Bitte überprüfen Sie den neuen Code einmal. – Kevin

+0

Mein Fehler. Es war bis auf einen Syntaxfehler meinerseits. Ihre Methode funktioniert perfekt. Vielen Dank, ich habe versucht, diese stundenlang zu erarbeiten! – kjf545

0

Nun, da Sie eine CSV-Leser (ich nehme an, Ihre echten Code ist eingekerbten korrekt und läuft ohne Syntaxfehler), müssen Sie es verwenden, um die Zeilen aus der Datei einzugeben. Der einfachste Weg ist wie folgt aus:

record = list(reader) 
+0

Hallo, ich versuche immer noch, Datei-I/O zu bekommen. Ich poste, wie ich es mit deiner Methode versucht habe. Danke dir übrigens. – kjf545