搜索列,使用python从excel返回行

时间:2014-04-01 02:09:32

标签: python excel csv

我有一个csv文件,其中A列有日期。我想搜索日期并返回数组(VERY IMPT)格式的相应行。我怎么用python做到这一点?谢谢。

excel文件:

      A          B         C
1  12202014     403       302

2  12212014     312       674

3  12222014     193       310

输入:

 Search csv file for 12212014

输出:

[12212014,312,674]

尝试代码:

date = '12212014'
with open('dates.csv', 'rt') as f:
     reader = csv.reader(f, delimiter=',')
     for row in reader:
          if date == row[0]: 
              print "found the date"

如何返回行而不仅仅是打印语句?

1 个答案:

答案 0 :(得分:2)

基本思路是创建字典/映射date - > line并按键获取值:

import csv


data = {}
with open('test.csv', 'r') as f:
    reader = csv.reader(f)
    for line in reader:
        data[line[0]] = line

date_to_find = '12212014'
print data.get(date_to_find, 'Date not found')

打印:

['12212014', '312', '674']

如果您之后需要映射以查找其中的日期,这会有所帮助。

另一种方法是使用生成器表达式迭代文件中的行,直到找到日期:

import csv


date_to_find = '12212014'
with open('test.csv', 'r') as f:
    print next((line for line in csv.reader(f) if line[0] == date_to_find), 
               'Date not found')

打印:

['12212014', '312', '674']

希望有所帮助。