一、关于csv文件的介绍
CSV(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看。由于是纯文本,任何编辑器也都可打开。与Excel文件不同,CSV文件中:
值没有类型,所有值都是字符串
不能指定字体颜色等样式
不能指定单元格的宽高,不能合并单元格
没有多个工作表
不能嵌入图像图表
打开方式:
直接用Excel打开,看起来是表格
用记事本或者编辑器打开就是一坨用,分开的字符
1、导包(不需要安装)
import csv
2、全部读取出来
filename = 'test.csv'
with open(filename) as f:
reader = csv.reader(f)
# 列表的方式
print(list(reader))
3、逐行读取数据
import csv
with open('test.csv') as f:
reader = csv.reader(f)
# 读取一行,下面的reader中已经没有该行了
header_row = next(reader)
for row in reader:
print(reader.line_num, row)
1、单行写入文件
import csv
datas = [
['name', 'age'],
['张三', 20],
['李四', 30]
]
with open('test1.csv', 'w', newline='', encoding='utf8') as f:
writer = csv.writer(f)
for row in datas:
writer.writerow(row)
2、结果显示
name,age
张三,20
李四,30
3、多行写入
import csv
datas = [
['name', 'age'],
['张三', 20],
['李四', 30],
['王五', 18]
]
with open('test2.csv', 'w', newline='', encoding='utf8') as f:
writer = csv.writer(f)
writer.writerows(datas)
使用DictReader可以像python中字典一样的操作数据
1、使用DictReader读取数据
import csv
with open('test.csv') as f:
reader = csv.DictReader(f)
# 先读取标题
next(reader)
for row in reader:
print(row['mobile'])
2、写入文件
import csv
headers = ['name', 'age']
datas = [
{'name': '张三', 'age': 20},
{'name': '李四', 'age': 30},
{'name': '王五', 'age': 24}
]
with open('test3.csv', 'w', newline='', encoding='utf8') as f:
writer = csv.DictWriter(f, headers)
# 写入头部
writer.writeheader()
# 一次性全部写入
writer.writerows(datas)