读取csv文件的指定行 python3

来源:互联网 发布:黑白网络官网 编辑:程序博客网 时间:2024/05/16 04:31

python读取csv文件的指定行

  csv文件是用文本文件形式储存的表格数据。

  提取文件数据指定的行,或者指定行里某一项数据是经常需要用到的。python有专门处理csv文件的模块,根据返回的类型,可以分为两类:

一,使用reader函数,返回一个生成器,类型为列表:

 

import csvtry:  #取别名,并且自动关闭文件 with open('hs300_399300.csv', 'r') as db01:    #返回一个生成器对象,reader是可迭代的    reader = csv.reader(db01)    for row in reader:      print(row)#捕捉异常本身,打印异常信息except csv.Error as e:  print("Error at line %s :%s", reader.line_num, e)

安全问题不能上传任何数据,运行结果以后补充


对于一个可迭代的(iterable)/可遍历的对象(如列表、字符串),enumerate内置函数可将其组成一个索引序列,利用它可以同时获得索引和值。

要提取其中第7行:

  reader = csv.reader(db01)    for index, rows in enumerate(reader):      if index == 7:        row = rows  print(row)


读取指定列:

  reader = csv.reader(db01)  column = [row[2] for row in reader]print (column)


二、使用DictReader,和reader类似,区别在于返回的每一个数据文件单元格都放在一个字典的值内,字典的键则是这个单元格的标题,而且是有序字典(OrderedDict)


import csvwith open('hs300_399300.csv', 'r') as db01:    #返回一个生成器对象,reader是有序字典    reader = csv.DictReader(db01)    for row in reader:        print(row)

用DictReader读取csv的某一列,就可以用列的标题查询:


import csvwith open('hs300_399300.csv', 'r') as db01:    #返回一个生成器对象,reader是有序字典    reader = csv.DictReader(db01)    for row in reader:        if row['收盘价'] =='1292.71'       print(row)
手打一下结果:

OrderedDict([('日期', '2002-01-08'), ('股票代码'," '399300"), .....])

  reader = csv.DictReader(db01)  column = [row['收盘价'] for row in reader]print column

原创粉丝点击