我找不到更好的地方来问我的问题。我正在学习Python并尝试按如下方式创建脚本。
1)应该能够搜索csv文件。
2)如果找到匹配,则返回整行。
我的csv:
Product,Scan,Width,Height,Capacity
LR,2999,76,100,17.5
RT,2938,37,87,13.4
如果我搜索2938作为示例,则返回整行,如下所示:
Product: RT
Scan: 2938
Width: 37
Height: 87
Capacity: 13,4
到目前为止,我有:
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
解决方案不起作用。
答案 0 :(得分:7)
#!/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', "rb"), delimiter=",")
#loop through 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
答案 1 :(得分:1)
你可以像这样使用csv
模块:
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