csv格式是电子表格和数据库中常用的输入输出的文件格式,以逗号为分隔符隔开,可以使用excel查看
csv读写方法:
“r” 只读,如果文件不存在,报错
“w” 只写,如果文件不存在,自动创建
“a” 追加 写在文件的末尾,如果文件不存在,自动创建
csv写入文件
方法1:
import csv
# 创建一维数组用于单行写入
header = ["name", "sex", "age", "address"]
# 创建二维数组用于多行写入
xx = [["xiaogu", "man", 18, "zk"],
["xiaolu", "woman", 20, "wlk"],
["laowang", "man", 30, "zk"]]
with open("xiaogu.csv", "w", newline="") as f: # 不加newline参数在Windows下可能出现多余的空行
writer = csv.writer(f) # 创建writer对象
writer.writerow(header) # 单行写入
writer.writerows(xx) # 多行写入
输出:
name,sex,age,address
xiaogu,man,18,zk
xiaolu,woman,20,wlk
laowang,man,30,zk
方法2:
import csv
# 创建一维数组用于单行写入
header = ["name", "sex", "age", "address"]
# 创建一维数组,每个元素由字典组成,用于多行写入
yy = [{"name": "xiaogu", "sex": "man", "age": 18, "address": "zk"},
{"name": "xiaolu", "sex": "woman", "age": 20, "address": "wlk"},
{"name": "laowang", "sex": "man", "age": 30, "address": "zk"}]
with open("xiaogu.csv", "w", newline="") as f:
writer = csv.DictWriter(f, header) # 使用字典形式写入,注意格式
writer.writeheader() # 必须调用writeheader方法写入(强调)
writer.writerows(yy) # 调用writerows多行写入
输出:
name,sex,age,address
xiaogu,man,18,zk
xiaolu,woman,20,wlk
laowang,man,30,zk
注意:在方法2中如果header没有写进去(即没有调用writeheader方法)下边的多行写入会出问题,因为字典中的key使用的是header中的元素,他们之间是一一对应关系
csv读取文件
import csv
with open("xiaogu.csv") as f: # 不写读写方式默认为只读
rows = csv.reader(f) # 获取一个可迭代对象
for xh, row in enumerate(rows, 1): # 文件中的每一行以一个列表形式输出,逗号隔开的为列表中的元素
print(xh, row)
输出:
1 ['name', 'sex', 'age', 'address']
2 ['xiaogu', 'man', '18', 'zk']
3 ['xiaolu', 'woman', '20', 'wlk']
4 ['laowang', 'man', '30', 'zk']