读写csv
【python基础教程】csv文件的写入与读取_python写入csv文件_hacker707的博客-优快云博客
csv的写入
1通过创建writer对象,主要用到2个方法。一个是writerow,写入一行。另一个是writerows写入多行
2使用DictWriter 可以使用字典的方式把数据写入进去
import csv
# 数据
person = [('xxx', 1, 93), ('yyy', 8, 182), ('zzz', 9, 18)]
# 表头
header = ['name', 'data', 'num']
with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
#newline=''减少空白行,不用这句话的情况下会中间隔行显示数据
# 创建对象
writer = csv.writer(file_obj)
# 写表头
writer.writerow(header)
# 遍历,将每一行的数据写入csv
for p in person:
writer.writerow(p)
一次写入多行:
import csv
# 数据
person = [('xxx', 8, 93), ('yyy', 8, 182), ('zzz', 1, 15)]
# 表头
header = ['name', 'data', 'num']
with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
# 创建对象
writer = csv.writer(file_obj)
# 写表头
writer.writerow(header)
# 遍历,将每一行的数据写入csv
for p in person:
writer.writerows(p)
字典格式:使用DictWriter可以使用字典的方式将数据
csv的读取
通过reader()读取
import csv
with open('person.csv', 'r', encoding='utf-8') as file_obj:
# 1.创建reader对象
reader = csv.reader(file_obj)
print(reader)
如果直接打印会返回csv.reader对象,这时需要遍历列表
遇到了这样的结果>>>>>>>><_csv.reader object at 0x000001FB8CE655F8>
改正代码:
import csv
with open('person.csv', 'r', encoding='utf-8') as file_obj:
# 1.创建reader对象
reader = csv.reader(file_obj)
# 2.遍历进行读取数据
for r in reader:
print(r)
如果想打印列表的某一个值,可以使用索引打印
print(r[0])
通过dictreader()读取
import csv
with open('person.csv', 'r', encoding='utf-8') as file_obj:
# 1.创建reader对象
dictReader = csv.DictReader(file_obj)
# 2.遍历进行读取数据
for r in dictReader:
print(r)
返回结果如下:
OrderedDict([('name', 'x'), ('data', '1'), ('num', '13')])
OrderedDict([('name', 'y'), ('data', '8'), ('num', '82')])
OrderedDict([('name', 'z'), ('data', '9'), ('num', '18')])
如果要取到某一个值就需要指定键去寻找值
print(r['name'])
输出:
x
y
z