python学习笔记——csv文件

目录

一、csv文件和Excel文件区别

二、手动转换(文本与列表)

①普通的写(列表嵌套转成文本的表格形式)

②普通的读(文本的表格形式转成列表嵌套)

 二、csv库-读

1、CSV库-读-reader()

2、CSV库-读-DictReader()

 

三、csv库-写

1、CSV库-写-列表形式

2、CSV库-写-字典形式


一、csv文件和Excel文件区别

关键区别:

CSV是一种用于将表格信息保存到扩展名为.csv的带分隔符的文本文件中的格式,而Excel是一种电子表格,可以将文件保留为其专有格式,即xls或xlsx。

CSV是纯文本格式,具有一系列用逗号分隔的值,而Excel是一个二进制文件,其中包含有关工作簿中所有工作表的信息。

CSV文件无法对数据执行操作,而Excel可以对数据执行操作。

CSV文件更快,并且消耗的内存更少,而Excel在导入数据时消耗的内存更多。

可以使用Windows中的任何文本编辑器打开CSV文件,而不能使用文本编辑器打开Excel文件。

相似之处:

两者都可以在电子表格程序中打开

两者都以表格格式(即列和行)存储数据

两者都可以使用Excel中的功能来操纵。

二、手动转换(文本与列表)

①普通的写(列表嵌套转成文本的表格形式)

a = [['姓名','年龄','身高','体重','分数'],
     ['a1', '10', '150', '40', '98'],
     ['a2', '8', '163', '46', '86'],
     ['a3', '11', '160', '55', '92']]

file = open('a.csv',mode='w')
for i in a:
    file.write(','.join(i)+'\n')

file.close()

python学习笔记——csv文件_第1张图片 

 

②普通的读(文本的表格形式转成列表嵌套)

a = []
file = open('a.csv',mode='r')
lines = file.readlines()#获取每一行,一行一个列表。
for i in lines:
    a.append(i.replace('\n','').split(','))#字符串去换行,字符串转列表

file.close()
print(a)

[['姓名', '年龄', '身高', '体重', '分数'], ['a1', '10', '150', '40', '98'], ['a2', '8', '163', '46', '86'], ['a3', '11', '160', '55', '92']]

 二、csv库-读

1、CSV库-读-reader()

以列表的形式读取数据,不用手动处理换行和转列表。

import csv#自带的库

a = []
file = open('a.csv',mode='r')
msg_list = csv.reader(file)
for i in msg_list:
    a.append(i)

file.close()
print(a)

2、CSV库-读-DictReader()

除了第一行,每一行是一个字典。

import csv#自带的库

file = open('a.csv',mode='r')
msg_dic = csv.DictReader(file)
for i in msg_dic:#遍历列表(msg_dic相当于列表)
    print(dict(i))#每一行是一个字典

file.close()

 

三、csv库-写

1、CSV库-写-列表形式

csv.writer(file)#传入打开的文件
writerow(list)#传入列表
writerows(lists)#传入嵌套列表

 csv文件写入时出现空行问题:设置newline=''

file = open('demo.csv', 'w', newline='')
import csv  # 自带的库

a = [['姓名', '年龄', '身高', '体重', '分数'],
     ['a1', '10', '150', '40', '98'],
     ['a2', '8', '163', '46', '86'],
     ['a3', '11', '160', '55', '92']]


file = open('a2.csv',mode='w')
csv_writer = csv.writer(file)
csv_writer.writerows(a)

file.close()

2、CSV库-写-字典形式

csv.DictWriter(file,head_list)#传入打开的文件,传入标题列表
writeheader()#写入表头,不需要单独传入参数
writerows(lists)#传入列表,列表里套着字典。
import csv  # 自带的库

a = [{'姓名': 'a1', '年龄': '10', '身高': '150', '体重': '40', '分数': '98'},
    {'姓名': 'a2', '年龄': '8', '身高': '163', '体重': '46', '分数': '86'},
    {'姓名': 'a3', '年龄': '11', '身高': '160', '体重': '55', '分数': '92'}]
a_head = ['姓名', '年龄', '身高', '体重', '分数']

file = open('a2.csv',mode='w')
csv_writer = csv.DictWriter(file,a_head)
csv_writer.writeheader()
csv_writer.writerows(a)

file.close()

你可能感兴趣的:(python,#,自动化办公,python,学习,excel)