package3 | cabbage

cabbage

菜鸟写给小白的教程

0%

package3

写在前面

读写方式 可否读写 文件不存在
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
writer = csv.writer(f)

一次写入一行内容

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.writeheader()

一次写入一行内容

1
writer.writerow({'姓名': '小明', '出生日期': '2000-2-3', '性别': '男', '电话': '112'})

一次写入多行内容

1
2
3
4
writer.writerows([
{'姓名': '小花', '出生日期': '2000-2-3', '性别': '男', '电话': '112'},
{'姓名': '小华', '出生日期': '2000-2-3', '性别': '男', '电话': '112'}
])