I couldn´t find a better place to ask my question. I am learning Python and trying to create a script as follows.

1) Should be able to search csv file.

2) Return entire row if match is found.

My csv:

Product,Scan,Width,Height,Capacity LR,2999,76,100,17.5 RT,2938,37,87,13.4 

If I search for 2938 for an example, entire row is returned as follows:

Product: RT Scan: 2938 Width: 37 Height: 87 Capacity: 13,4 

So far I have:

csvFile = getComponent().filePath pos = csvFile.rfind('Desktop\\') csvFile = csvFile[:pos] + 'programm\\products.csv' myfile = open(csvFile) myfile.seek(0) for line in myfile.split('\n'): data = line.split(',') print data if data[2] == agv_O_Cal.value and data[3] == agv_O_Mod.value: print 'found: value = %s' %agv_O_Cal.value, agv_O_Mod.value Product = data[5] Scan = data[6] Width = data[7] Height = data[9] Capacity = data[10] print , Product, Scan, Width, Height, Capacity 

The solution doesn´t work.

3

2 Answers

#!/usr/bin/python import csv import sys #input number you want to search number = raw_input('Enter number to find\n') #read csv, and split on "," the line csv_file = csv.reader(open('test.csv', "r"), delimiter=",") #loop through the csv list for row in csv_file: #if current rows 2nd value is equal to input, print that row if number == row[1]: print (row) 
10

you can use csv module like this:

import csv reader = csv.reader(open(csvFile, 'r')) for data in reader: #list index start from 0, thus 2938 is in data[1] if data[1] == agv_O_Cal.value and data[3] == agv_O_Mod.value: #do somethinngs 

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy