zoukankan      html  css  js  c++  java
  • python操作csv文件

    CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看。由于是纯文本,任何编辑器也都可打开。与Excel文件不同,CSV文件中:

    值没有类型,所有值都是字符串,不能指定字体颜色等样式,不能指定单元格的宽高,不能合并单元格没有多个工作表,不能嵌入图像图表

    在CSV文件中,以,作为分隔符,分隔两个单元格。像这样a,,c表示单元格a和单元格c之间有个空白的单元格。依此类推。

    不是每个逗号都表示单元格之间的分界。所以即使CSV是纯文本文件,也坚持使用专门的模块进行处理。Python内置了csv模块。先看看一个简单的例子。

    ”将data内容写入csv文件,如下图所示:
     1 import csv
     2 data =[
     3 #使用数字和字符串的数字都可以
     4 ("ken","mafe",23),
     5 ("Tame","maee",29),
     6 ("Js","dggd",26)]
     7 with open("d://test.csv",'w',newline='')as t_file:
     8     csv_writer = csv.writer(t_file)
     9     for l in data:
    10         csv_writer.writerow(l)

    第二步运行py文件之后,我们可以看到d盘已经创建了test.csv文件,如下图所示:

    第三步打开test.csv文件,可以看到已经将内容写入到csv文件中了:

    上面就简单介绍了csv的写,下面来看一下csv读的方法:

    第一步,输入

    1 import csv
    2 reader =csv.reader(open('d://test.csv'))#打开
    3 for list in reader:
    4     print(list)
     第二步运行py文件,可以看到读取了csv文件内容,这里需要注意的是如果直接将excel表格后缀名改为csv文件,读取的时候,会出现编码错误

    在上面,list是一个列表,如果想要查看固定的某列,则需要加上下标,例如我想要查看age,那么只需要改为list[1]

    补充:

    在写入字典序列类型数据的时候,需要传入两个参数,一个是文件对象——f,一个是字段名称——fieldnames,到时候要写入表头的时候,只需要调用writerheader方法,写入一行字典系列数据调用writerrow方法,并传入相应字典参数,写入多行调用writerows

     1 import csv
     2 header=['name','age']
     3 data =[
     4 {'name':'mafe','age':23},
     5 {'name':'maee','age':29},
     6 {'name':'dggd','age':26}]
     7 with open("d:\test.csv",'w',newline='')as t_file:
     8     #表头在这里传入,作为第一行数据
     9     writer = csv.DictWriter(t_file,header)
    10     writer.writeheader()
    11     for l in data:
    12         writer.writerow(l)

    再打开test.csv结果如下:

    假设csv文件的内容如上图图所示,用DictReader来读取它

    DictReader会将第一行的内容(类标题)作为key值,第二行开始才是数据内容。即图中的csv文件有2列4行数据,第一列的key值为name,第二列的key值为age:

    1 import csv
    2 with open('d://test.csv',encoding='utf-8')as f:
    3     reader =csv.DictReader(f)#字典表 DictReader 列表读取
    4     headers =next(reader)#迭代一次
    5     print(headers)
    6     for row in reader:
    7         print(row)

    运行结果如下:

    最后提醒一下:

    read方法的使用:打印出来的结果是数组类型,有文件中几行数据就打印几个数组,不区分表头和值

    DictReader方法的使用:打印出来的数据是字典类型,表格的表头为键、每一行的值为值,值有几行就打印几个字典

  • 相关阅读:
    城市的划入划出效果
    文本溢出省略解决笔记css
    长串英文数字强制折行解决办法css
    Poj 2352 Star
    树状数组(Binary Indexed Trees,二分索引树)
    二叉树的层次遍历
    Uva 107 The Cat in the Hat
    Uva 10336 Rank the Languages
    Uva 536 Tree Recovery
    Uva10701 Pre, in and post
  • 原文地址:https://www.cnblogs.com/qq991025/p/11962782.html
Copyright © 2011-2022 走看看