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方法的使用:打印出来的数据是字典类型,表格的表头为键、每一行的值为值,值有几行就打印几个字典

原文地址:https://www.cnblogs.com/qq991025/p/11962782.html