【Python3 爬虫】U22_csv文件处理
1.什么是csv?
逗号分隔值(Comma-Separated Values,CSV,有时也称为字符分隔值,因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。
2.csv文件的两种读取方式
2.1 reader读取
import csv
with open("student.csv","r") as f:
# reader是一个迭代器
reader = csv.reader(f)
titles = next(reader) # 跳过标题行
for x in reader:
name = x[0]
age = x[1]
print("姓名:%s" %name, "年龄:%s" %age)
输出结果:
姓名:张三 年龄:15
姓名:李四 年龄:16
姓名:王五 年龄:17
使用reader读取的话,存在一个问题,在获取数据的时候,通过下标来获取列,现在第一列式name,如果我把第一列修改为id列,那么数据获取将会出现问题,所以有了
DictReader
2.2 DictReader读取
如果想要获取数据的时候通过标题来获取,那么可以使用DictReader
。
import csv
with open("student.csv","r") as f:
# 使用DictReader创建的reader对象,不会包含标题那行数据,reader是一个迭代器,遍历这个迭代器,返回的是一个字典
reader = csv.DictReader(f)
for x in reader:
value = {"姓名":x["name"],"年龄":x["age"]}
print(value)
输出结果:
{'姓名': '张三', '年龄': '15'}
{'姓名': '李四', '年龄': '16'}
3.csv文件的两种写入方式
3.1 writer写入
import csv
title = ["empno","ename","owner"]
value = [
('A001','关羽','刘备'),
('A002','张飞','刘备'),
('A003','夏侯惇','曹操'),
('A004','郭嘉','曹操'),
]
with open("emp.csv", "w", encoding="utf-8", newline='') as f: # 默认的newline为\n
writer = csv.writer(f)
writer.writerow(title)
writer.writerows(value)
运行后结果:
3.2 DictWriter写入
import csv
title = ['empno','ename','owner']
value = [
{'empno':'A001','ename':'关羽','owner':'刘备'},
{'empno':'A002','ename':'张飞','owner':'刘备'},
{'empno':'A003','ename':'夏侯惇','owner':'曹操'},
{'empno':'A004','ename':'郭嘉','owner':'曹操'},
]
with open("emp.csv", "w", encoding="utf-8", newline='') as f: # 默认的newline为\n
writer = csv.DictWriter(f,title)
# 写入表头直接调用writeheader()方法即可
writer.writeheader()
writer.writerows(value)
运行后结果:
作者:奔跑的金鱼
声明:书写博客不易,转载请注明出处,请支持原创,侵权将追究法律责任
个性签名:人的一切的痛苦,本质上都是对自己无能的愤怒
如果觉得这篇文章对你有小小的帮助的话,记得在右下角点个“推荐”哦,博主在此感谢!