python基础教程之csv格式⽂件的写⼊与读取
⽬录
csv的简单介绍
csv的写⼊
第⼀种写⼊⽅法(通过创建writer对象)
第⼆种写⼊⽅法(使⽤DictWriter可以使⽤字典的⽅式将数据写⼊)
csv的读取
通过reader()读取
通过dictreader()读取
总结
csv的简单介绍
CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是⼀种常⽤的⽂本格式,⽤以存储表格数据,包括数字或者字符。很多程序在处理数据时都会碰到csv 这种格式的⽂件。python⾃带了csv模块,专门⽤于处理csv⽂件的读取
csv的写⼊
1通过创建writer对象,主要⽤到2个⽅法。⼀个是writerow,写⼊⼀⾏。另⼀个是writerows写⼊多⾏
2使⽤DictWriter 可以使⽤字典的⽅式把数据写⼊进去
第⼀种写⼊⽅法(通过创建writer对象)
先来说⼀下第⼀种写⼊的⽅法:通过创建writer对象写⼊(每次写⼊⼀⾏)
步骤:1.创建数据和表头2.创建writer对象3.写表头4.遍历列表,将每⼀⾏数据写⼊csv
代码如下:
import csv
person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
python怎么读csv数据# 表头
header = ['name', 'age', 'height']
with open('person.csv', 'w', encoding='utf-8') as file_obj:
# 1:创建writer对象
writer = csv.writer(file_obj)
# 2:写表头
writer.writerow(header)
# 3:遍历列表,将每⼀⾏的数据写⼊csv
for p in person:
writer.writerow(p)
写⼊完就会在当前⽬录下出现⼀个person.csv⽂件,⿏标右键点击show in Explorer打开person.csv查看
打开以后会发现写⼊的数据中间会换⾏
居然:那么应该怎么解决这个问题呢
hacker:很简单啊
只需要在写⼊数据的时候加上⼀个参数 newline=’'为了防⽌换⾏写⼊
改正后的代码如下:
import csv
# 数据
person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表头
header = ['name', 'age', 'height']
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.writerow(p)
通过创建writer对象(⼀次性写⼊多⾏)
步骤:1.创建数据和表头2.创建writer对象3.写表头4.在writerows⾥传⼊你要处理的数据import csv
# 数据
person = [('xxx', 18, 193), ('yyy', 18, 182), ('zzz', 19, 185)]
# 表头
header = ['name', 'age', 'height']
with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
# 创建对象
writer = csv.writer(file_obj)
# 写表头
writer.writerow(header)
# 3.写⼊数据(⼀次性写⼊多⾏)
writer.writerows(person)
写⼊结果如下:
第⼆种写⼊⽅法(使⽤DictWriter可以使⽤字典的⽅式将数据写⼊)注意事项:使⽤字典的⽅式写⼊要注意传递的数据格式必须是字典
如果不是字典的话会报错
AttributeError: ‘tuple’ object has no attribute ‘keys’
步骤1.创建数据和表头( 数据必须是字典格式)2.创建DictWriter对象3.写表头4.写⼊数据import csv
# 数据
person = [
{'name': 'xxx', 'age': 18, 'height': 193},
{'name': 'yyy', 'age': 18, 'height': 182},
{'name': 'zzz', 'age': 19, 'height': 185},
]
# 表头
header = ['name', 'age', 'height']
with open('person.csv', 'w', encoding='utf-8', newline='') as file_obj:
# 1.创建DicetWriter对象
dictWriter = csv.DictWriter(file_obj, header)
# 2.写表头
dictWriter.writeheader()
# 3.写⼊数据(⼀次性写⼊多⾏)
dictWriter.writerows(person)
csv的读取
通过reader()读取
import csv
with open('person.csv', 'r', encoding='utf-8') as file_obj:
# 1.创建reader对象
reader = ader(file_obj)
print(reader)
如果直接打印会返回ader对象,这时需要遍历列表
<_ader object at 0x000001FB8CE655F8>
改正代码如下:
import csv
with open('person.csv', 'r', encoding='utf-8') as file_obj:
# 1.创建reader对象
reader = ader(file_obj)
# 2.遍历进⾏读取数据
for r in reader:
print(r)
读取结果如下:
['name', 'age', 'height']
['xxx', '18', '193']
['yyy', '18', '182']
['zzz', '19', '185']
如果想打印列表的某⼀个值,可以使⽤索引打印
print(r[0])
name
xxx
yyy
zzz
通过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', 'xxx'), ('age', '18'), ('height', '193')])
OrderedDict([('name', 'yyy'), ('age', '18'), ('height', '182')])
OrderedDict([('name', 'zzz'), ('age', '19'), ('height', '185')])
这时我们如果要取到某⼀个值就需要指定键去寻值
print(r['name'])
xxx
yyy
zzz
总结
到此这篇关于python基础教程之csv格式⽂件的写⼊与读取的⽂章就介绍到这了,更多相关python csv⽂件写⼊与读取内容请搜索以前的⽂章或继续浏览下⾯的相关⽂章希望⼤家以后多多⽀持!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。