写在前面
读写方式 |
可否读写 |
文件不存在 |
w |
覆盖写入 |
创建 |
w+ |
覆盖写入、可读 |
创建 |
r |
可读 |
报错 |
r+ |
覆盖写入、可读 |
报错 |
a |
附加写入 |
创建 |
a+ |
附加写入、可读 |
创建 |
csv
csv文件叫逗号分隔值文件
每一行内容是通过逗号来区分出不同的列
csv文件可以直接通过excel打开,以行列的形式保存和显示数据,但是相对excel文件,它只能存储数据,不能保存公式和函数
使用时要import csv
读操作
1)创建打开csv文件
1 2 3 4 5 6 7
| """ 文件对象 = open() 文件对象.close()
with open() as 文件对象: 操作文件 """
|
举例:
1
| f = open('file/电影.csv', 'r', encoding='utf-8')
|
2)创建reader获取文件内容
1 2 3 4 5 6 7 8 9 10 11
| """ csv.reader(文件对象) - 获取文件内容,并且以列表为单位返回每一行内容 csv.DictReader(文件对象) - 获取文件内容,并且以字典为单位返回第2行开始的每一行内容(字典的键是第一行内容) """ import csv
f = open('file/电影.csv', 'r', encoding='utf-8') reader1 = csv.reader(f) print(list(reader1)) reader2 = csv.DictReader(f) print(list(reader2))
|
二、csv文件写操作
(一)打开文件
1
| f = open('./file/data.csv', 'w', encoding='utf-8')
|
如果没有文件,则会自动创建
(二)创建writer对象
1 2 3 4 5 6 7
| """ csv.writer(文件对象,delimiter) - 创建writer对象,这个对象在写入数据的时候一行对应一个列表
delimiter 指定同一行每个字段的分隔字符。若不指定,默认以英文逗号(,)分隔,在csv文件中显示的是不同单元格,若以其他符号分隔,则显示在csv同一单元格中
csv.DictWriter(文件对象,键列表,delimiter) - 创建writer对象,以字典为单位写入数据 """
|
1)以列表为单位写入一行内容
一次写入一行内容
1 2
| writer.writerow(['姓名', '出生日期', '性别', '电话']) writer.writerow(['小明', '2001', '男', '110'])
|
一次写入多行内容
1 2 3 4
| writer.writerows([ ['小花', '2001', '女', '110'], ['小华', '2001', '女', '110'] ])
|
2)以字典为单位写入一行内容
1
| writer = csv.DictWriter(f, ['姓名', '出生日期', '性别', '电话'])
|
写入文件头(将字典的键写入到文件开头)
一次写入一行内容
1
| writer.writerow({'姓名': '小明', '出生日期': '2000-2-3', '性别': '男', '电话': '112'})
|
一次写入多行内容
1 2 3 4
| writer.writerows([ {'姓名': '小花', '出生日期': '2000-2-3', '性别': '男', '电话': '112'}, {'姓名': '小华', '出生日期': '2000-2-3', '性别': '男', '电话': '112'} ])
|