我有一个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"
如何返回行而不仅仅是打印语句?
答案 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']
希望有所帮助。