2016-07-19 2 views
1

Ich habe eine Excel/CSV-Datei Informationen in folgendem Format enthalten:Wie kann ich Elemente in Csv-Datei an Variablen in Python senden?

A  B  C 
1 3  A  T 
2 5  T  G 
3 100 A  C 
4 101 A  A 

Ich möchte var1 bis 3, var2 auf A gesetzt, und var3 auf T, einige Operationen mit diesen Variablen laufen und tun das Gleiche in der nächsten Reihe. I.e. Der nächste Durchlauf würde var1 auf 5, var2 auf T, var3 auf G setzen, die Operationen ausführen und so weiter.

Was ist der beste Weg, dies in Python zu erreichen? Ich bin ziemlich neu in der Programmierung in Python.

Antwort

0

Öffnen Sie die CSV und nutzen Sie dann die Tatsache, dass alles durch Kommas getrennt ist. Beachten Sie, wie wir [1:] verwenden, um die erste Zeile zu ignorieren.

f = open("yourcsv.csv","r") 
lines = f.readlines() 
for i in lines[1:]: 
    split_line = i.split() 
    var1 = split_line[1] 
    var2 = split_line[2] 
    var3 = split_line[3] 
    # Do something with the values 

EDIT:

In den Kommentaren, Sie haben gesagt, dass ABC/1234 die Excel-Markierungen sind. Wenn dies der Fall ist, wird Folgendes funktionieren.

f = open("yourcsv.csv","r") 
lines = f.readlines() 
for i in lines: 
    split_line = i.split() 
    var1 = split_line[0] 
    var2 = split_line[1] 
    var3 = split_line[2] 
    # Do something with the values 
+0

Vielen Dank für Ihre Hilfe! Ich habe ABC/1234 verwendet, um die Zeile/Spalte in Excel anzugeben. Ist [1:] noch notwendig? – maharaja9933

+0

@maharaja9933 Wenn meine Antwort Ihr Problem gelöst hat, können Sie es akzeptieren, indem Sie das Häkchen neben der Antwort drücken? – intboolstring

+0

@ maharaja9933 Danke! – intboolstring

0

Sie dict verwenden können, um die Anforderung zu erreichen

import csv 
varLst = [var1,var2,var3] 
with open(filepath,'r') as f: 
    r = csv.reader(f) 
    for line in r: 
    varDict = { v: varLst[i] for i,v in enumerate(line) } 
    # do something 
    # if you want call var1 ==> varDict['3'] for first line of data 
0

Managed würde die unelegant Lösung arbeiten, während ich auf Antworten gewartet und ich dachte, ich meinen eigenen Ansatz des Problems bieten würde in Fall kann es jemandem in der Zukunft helfen oder Rückgespräch über ihn erhalten. Beide oben vorgeschlagenen Methoden haben auch funktioniert!

import csv 
with open('scz.csv', newline='') as csvfile: 
    filereader = csv.reader(csvfile, delimiter=' ', quotechar='|') 
    for row in filereader: 
     str_row = ''.join(row) 
     var1, var2, var3 = str_row.split(',')