繁体   English   中英

如何在sikuli中使用python从csv文件中读取单列

[英]how to read single column from csv file using python in sikuli

我提到了python教程,但是在遇到这种情况时,我不确定问题出在哪里。 在这里,我附上我的代码片段,请仔细检查一下并给我解决方案。

在这里我要打印单列,请提供解决方案,谢谢

import csv
Col1 = "ColumnName1"
Col2 = "ColumnName2"
Col3 = "ColumnName3"
mydictionary={Col1:[], Col2:[], Col3:[]}
csvFile = csv.reader(open("D:\\Sikuli\\example1.csv", "rb"))
for row in csvFile:
  mydictionary[Col1].append(row[0])
  mydictionary[Col2].append(row[1])
  mydictionary[Col3].append(row[2])

for row in csvFile:
  col1, col2, col3 = row
  print "%s: %s, %s" % (col1, col2, col3)

我的csv文件是:

Presedence,Sno,STP-testcaseno,Test_id,Scenario,Simulator,Comport

0,1,STP-GPSBL-001,SimZen-001,general,SimZen,com1

1,2,STP-GPSBL-002,SimZen-002,general,SimZen,com2

1,3,STP-GPSBL-003,Simplex-003,gpsblhsiura1,Simplex,com1

0,4,STP-GPSBL-004,SimZen-004,gpsblhsiura1,SimZen,com1

1,5,STP-GPSBL-005,Accord-005,general1,Accord,com3

0,6,STP-GPSBL-006,Ifen-006,general1,Ifen,com1

csvfile中的替代行为空,并转换为[] 因此IndexError: list index out of range当您尝试索引例如row[0]时,您将得到IndexError: list index out of range异常。 此外,即使解决了此问题,随后您在解压缩row使用的变量少于行中元素的行数,仍会出现ValueError: too many values to unpack异常。 这样可以解决问题:

import csv                                                                                                                
Col1 = "ColumnName1"                                                                                                      
Col2 = "ColumnName2"                                                                                                      
Col3 = "ColumnName3"                                                                                                      
mydictionary={Col1:[], Col2:[], Col3:[]}                                                                                  
csvFile = csv.reader(open("D:\\Sikuli\\example1.csv", "rb"))                                                                          
for row in csvFile:
    if row:                                                                                                       
        mydictionary[Col1].append(row[0])                                                                                 
        mydictionary[Col2].append(row[1])                                                                                 
        mydictionary[Col3].append(row[2])                                                                                 

for k in range(len(mydictionary[Col1])):                                                                                  
  print "%s: %s, %s" % (mydictionary[Col1][k], mydictionary[Col2][k], mydictionary[Col3][k]) 

我建议您使用with语句打开文件; 然后使用csvDictReader类:

import csv
Col1='Presedence'
Col2='Sno'
Col3='STP-testcaseno'

with open("D:\\Sikuli\\example1.csv", "rb") as csvfile:
    reader = csv.DictReader(csvfile)
    print '{} {} {}'.format(Col1,Col2,Col3)
    for row in reader:
        print '{:<10} {:<}\t{:<}'.format(row[Col1],row[Col2],row[Col3])

输出:

Presedence Sno STP-testcaseno
0          1    STP-GPSBL-001
1          2    STP-GPSBL-002
1          3    STP-GPSBL-003
0          4    STP-GPSBL-004
1          5    STP-GPSBL-005
0          6    STP-GPSBL-006

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM