Ich arbeite an einem Problem, um eine Funktion find_row mit drei Eingabeparameter - Dateiname, col_number und Wert zu erstellen. Ich möchte eine Ausgabe wie in Beispiel gegeben:So finden Sie die Zeilennummer eines bestimmten Werts mit bekannten Spalte Nummer in CSV-Datei durch Python
Zum Beispiel, wenn wir eine Datei a.csv:
1, 1.1, 1.2
2, 2.1, 2.2
3
4, 4.1, 4.2
dann
print (find_row ('a.csv', 0, 4)) 3 würde,
print (find_row ('a.csv', 2, 2.2)) würde 1 drucken, und
print (find_row ('a.csv', 0, 100)) drucken würde drucken Keiner.
Der Code habe ich versucht, ist:
import csv
def find_row(filename,col_number,value):
var = str(value)
coln = str(col_number)
o = open(filename, 'r')
myData = csv.reader(o)
index = 0
for row in myData:
if row[col_number] == var:
return index
else :
index+=1
print find_row('a.csv',2,2.2)
Es wirft Fehler:
File "C:/Users/ROHIT SHARMA/Desktop/1.py", line 17, in find_row
if row[col_number] == var:
IndexError: list index out of range
ich den Fehler verstehen jetzt, aber nicht in der Lage, den Code zu verbessern. Irgendwelche Hilfe hier Jungs ??!
Danke.
noch denselben Fehler zu werfen. Und die CSV-Datei hat keine Leerzeichen. Beim Einfügen hier hat es im Beispiel Leerzeichen. –
Ich testete an meinem Ende sowohl in 2.7 und 3.5 und es funktioniert gut für mich. Kannst du deinen aktuellen Code in einen Pastebin schreiben und ich werde es mir ansehen? –