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'])
|