python csv dictwriter,用python读写和处理csv文件

  python csv dictwriter,用python读写和处理csv文件

  本文主要介绍python的csv。操作CSV格式文件的DictReader()方法。文章围绕主题,详细介绍了内容,具有一定的参考价值。感兴趣的朋友可以参考一下。

  00-1010简单用csv。DictReader()方法,使用csv的fieldnames参数。DictReader(),使用csv的restkey参数。DictReader(),使用csv的restval参数。DictReader()。

  

目录

 

  示例代码1:

  导入csv

  f=打开(样本, r ,编码=utf8 )

  读者=csv。字典阅读器

  打印(阅读器)# csv。0x000002241D730FD0处的DictReader对象

  对于reader: # reader中的行为了便于理解,我们可以把它想象成一个列表嵌套的OrderedDict(一种看起来像列表的数据类型)

  print(line) # OrderedDict([(id , 1 ),( name , jason ),( age , 18)])

  sample为一个txt文件,文件内容如下:

  身份证,姓名,年龄

  1岁的杰森,18岁

  2、剑,20

  3、小明,30岁

  4,狗,40

  代码运行在终端输出的结果为:

  Csv。0x 0000001 ff 6 fa 0 FD 0 #处的dictreader对象来自示例代码1中的print(reader)。

  Orderdict ([(id , 1 ),( name , Jason ),( age , 18 ))#来自示例代码1中的print(line)。

  1 jason 18 #来自样本代码1中的print(行[id],行[name],行[age])。

  OrderedDict([(id , 2 ),( name , jian ),( age , 20)])

  2建20

  OrderedDict([(id , 3 ),(姓名,小明),(年龄, 30)])

  3小明30

  OrderedDict([(id , 4 ),( name , dog ),( age , 40)])

  4狗40

  OrderDict是一种类似于列表的数据类型,其中有嵌套的元组例子:line=OrderDict ([(id , 1 ),( name , Jason ),( age , 18)],每个元组中的第一个元素是一个键,第二个元素是一个value ()==默认情况下(可以自己设置)==读取的第一行数据==csv。DictReader()是关键。而OrderedDict数据中的值print (line [id],line [name],line [age]) #可以通过索引(类似于字典)来检索。

  

简单使用csv.DictReader()方法

 

  In reader=csv.dictreader (f,fieldnames=[new _ id , new _ name ,

  9;new_age'])中添加参数fieldnames=['new_id','new_name','new_age']用来指定键。

  示例代码2:

  

import csv

 

  next()方法用于移动指针,示例代码2中的head_row = next(reader)获取的是第一行数据存储在head_row中,执行一次next()指针移动一行,此时指针已经移动到了第二行开头,再次读数据的时候,就从第二行开始读取。如果不执行head_row = next(reader)则输出中还会多出这样的结果OrderedDict([('new_id', 'id'), ('new_name', 'name'), ('new_age', 'age')])第一行数据也被算在了其中。

  代码运行在终端输出的结果为:

  

<csv.DictReader object at 0x000001D329CF2080> # 来自于示例代码2的print(reader)
OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18')]) # 来自于示例代码2的print(line)
1 jason 18 # 来自于示例代码2的print(line['new_id'],line['new_name'],line['new_age'])
OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20')])
2 jian 20
OrderedDict([('new_id', '3'), ('new_name', 'xiaoming'), ('new_age', '30')])
3 xiaoming 30
OrderedDict([('new_id', '4'), ('new_name', 'dog'), ('new_age', '40')])
4 dog 40

 

  

 

  

 

  

使用csv.DictReader()之restkey参数

 

  如果读取的行具有比键名序列更多的值,此时则会将剩余的数据作为值添加到restkey中的键下面。此时我们修改sample文件多添加一列数据。
在reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age'],restkey='hobby')中添加restkey='hobby'用来指定接收多余值的键,并且要注意restkey只能传入一个值,不能传入列表,元组数据类型。

  sample为一个txt文件,文件内容如下:

  

id,name,age

 

  示例代码3:

  

import csv

 

  代码运行在终端输出的结果为:

  

<csv.DictReader object at 0x000001CB6B6030F0> # 来自于示例代码3的print(reader)
OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', ['dbj'])]) # 来自于示例代码3的print(line)
1 jason 18 # 来自于示例代码3的print(line['new_id'],line['new_name'],line['new_age'])
OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20'), ('hobby', ['lol'])])
2 jian 20
OrderedDict([('new_id', '3'), ('new_name', 'xiaoming'), ('new_age', '30'), ('hobby', ['game'])])
3 xiaoming 30
OrderedDict([('new_id', '4'), ('new_name', 'dog'), ('new_age', '40'), ('hobby', ['noting'])])
4 dog 40

 

  

 

  从代码运行结果中我们会发现多出来的值,确实使用restkey指定的键restkey='hobby'来接收了OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', ['dbj'])])
注意虽然多余的键可以用restkey指定的键接收,但是却无法通过索引打印出来,也就是执行print(line["hobby"])的话就会报错KeyError: 'hobby'。

  

 

  

使用csv.DictReader()之restval参数

 

  如果读取的行具有比键名序列更少的值,此时剩余的键则会使用可选参数restval中的值。此时我们修改sample文件多添加一列数据。
在reader = csv.DictReader(f,fieldnames=['new_id','new_name','new_age','hobby'],restval='others')中添加restval='others'用来指定键对应值为空时的默认值,并且要注意restval也只能传入一个值,不能传入列表,元组数据类型。

  sample为一个txt文件,文件内容如下:

  

id,name,age

 

  示例代码4:

  

import csv

 

  代码运行在终端输出的结果为:

  

OrderedDict([('new_id', '1'), ('new_name', 'jason'), ('new_age', '18'), ('hobby', 'others')]) # 来自于示例代码4的print(line)
1 jason 18 others # 来自于示例代码4的print(line['new_id'],line['new_name'],line['new_age'],line['hobby'])
OrderedDict([('new_id', '2'), ('new_name', 'jian'), ('new_age', '20'), ('hobby', 'lol')])
2 jian 20 lol
OrderedDict([('new_id', '3'), ('new_name', 'xiaoming'), ('new_age', '30'), ('hobby', 'others')])3 xiaoming 30 others
OrderedDict([('new_id', '4'), ('new_name', 'dog'), ('new_age', '40'), ('hobby', 'noting')])
4 dog 40 noting

 

  

 

  到此这篇关于python操作csv格式文件之csv.DictReader()方法的文章就介绍到这了,更多相关python csv.DictReader方法内容请搜索盛行IT软件开发工作室以前的文章或继续浏览下面的相关文章希望大家以后多多支持盛行IT软件开发工作室!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: