import csv

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# 操作文件对象时,需要添加newline参数逐行写入,否则会出现空行现象
with open('eggs.csv', 'w', newline='') as csvfile:
# delimiter 指定分隔符,默认为逗号,这里指定为空格
# quotechar 表示引用符
# writerow 单行写入,列表格式传入数据
spamwriter = csv.writer(csvfile, delimiter=' ',quotechar='|')
spamwriter.writerow(['www.biancheng.net'] * 5 + ['how are you'])
spamwriter.writerow(['hello world', 'web site', 'www.biancheng.net'])


#想同时写入多行数据,需要使用 writerrows() 方法
with open('aggs.csv', 'w', newline='') as f:
writer = csv.writer(f)
# 注意传入数据的格式为列表元组格式
writer.writerows([('hello', 'world'), ('I', 'love', 'you')])


#可使用 DictWriter 类以字典的形式读写数据
with open('names.csv', 'w', newline='') as csvfile:
#构建字段名称,也就是key
fieldnames = ['first_name', 'last_name']
writer = csv.DictWriter(csvfile, fieldnames=fieldnames)
# 写入字段名,当做表头
writer.writeheader()
# 多行写入
writer.writerows([{'first_name': 'Baked', 'last_name': 'Beans'},{'first_name': 'Lovely', 'last_name': 'Spam'}])
# 单行写入
writer.writerow({'first_name': 'Wonderful', 'last_name': 'Spam'})



#SV文件读取
import csv
with open('eggs.csv', 'r', newline='') as csvfile:
spamreader = csv.reader(csvfile, delimiter=' ', quotechar='|')
for row in spamreader:
print(', '.join(row))

#csv.DictReader()
import csv
with open('names.csv', newline='') as csvfile:
reader = csv.DictReader(csvfile)
for row in reader:
print(row['first_name'], row['last_name'])