python对csv文件处理,python写入csv文件的几种方法总结

  python对csv文件处理,python写入csv文件的几种方法总结

  Csv是逗号分隔值的缩写,它是以文本文件形式存储的表格数据,如下表所示:

  您可以将其存储为包含以下内容的csv文件:

  编号,姓名,年龄,分数1,mayi,18,99

  2,杰克,21,89

  3,汤姆,25,95

  4,rain,19,80假设上述csv文件保存为 test.csv

  1.读文件

  如何像操作Excel一样用Python提取其中一列,也就是一个字段?使用Python自己的csv模块,有两种方法可以实现这一点:

  第一种方法使用reader函数

  接收一个迭代对象(比如csv文件),如果可以返回一个生成器,就可以从中解析出csv的内容:比如下面的代码可以读取csv的所有内容,以行为单位:

  #!/usr/bin/python3

  #-*-编码:utf-8-*-

  importcsv

  # Read WithOpen (test.csv , r ,编码= UTF-8) ASF:

  reader=csv.reader(f)

  rows=[rowforrowinreader]

  打印(行)

  获取:

  [[编号,姓名,年龄,分数],

  [1 , mayi , 18 , 99],

  [2 ,杰克, 21 , 89],

  [3 ,汤姆, 25 , 95],

  [4 ,注意

  sp;'rain','19','80']]要提取其中某一列,可以用下面的代码:

  

#!/usr/bin/python3

  #-*-coding:utf-8-*-

  importcsv

  #读取第二列的内容

  withopen("test.csv","r",encoding="utf-8")asf:

  reader=csv.reader(f)

  column=[row[1]forrowinreader]

  print(column)

得到:

  

['Name','mayi','jack','tom','rain']
注意从csv读出的都是str类型。这种方法要事先知道列的序号,比如Name在第2列,而不能根据'Name'这个标题查询。

  相关推荐:《Python视频教程》

  这时可以采用第二种方法:

  第二种方法是使用DictReader,和reader函数类似,接收一个可迭代的对象,能返回一个生成器,但是返回的每一个单元格都放在一个字典的值内,而这个字典的键则是这个单元格的标题(即列头)。用下面的代码可以看到DictReader的结构:

  

#-*-coding:utf-8-*-

  importcsv

  #读

  withopen("test.csv","r",encoding="utf-8")asf:

  reader=csv.DictReader(f)

  column=[rowforrowinreader]

  print(column)

  得到:

  

[{'No.':'1','Age':'18','Score':'99','Name':'mayi'},

  {'No.':'2','Age':'21','Score':'89','Name':'jack'},

  {'No.':'3','Age':'25','Score':'95','Name':'tom'},

  {'No.':'4','Age':'19','Score':'80','Name':'rain'}]

如果我们想用DictReader读取csv的某一列,就可以用列的标题查询:

  

#!/usr/bin/python3

  #-*-coding:utf-8-*-

  __author__='mayi'

  importcsv

  #读取Name列的内容

  withopen("test.csv","r",encoding="utf-8")asf:

  reader=csv.DictReader(f)

  column=[row['Name']forrowinreader]

  print(column)

得到:

  

['mayi','jack','tom','rain']
2.写文件

  读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。

  

#!/usr/bin/python3

  #-*-coding:utf-8-*-

  __author__='mayi'

  importcsv

  #写:追加

  row=['5','hanmeimei','23','81']

  out=open("test.csv","a",newline="")

  csv_writer=csv.writer(out,dialect="excel")

  csv_writer.writerow(row)

  得到:

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

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