python基础—csv模块使用
时间:2022-07-22
本文章向大家介绍python基础—csv模块使用,主要内容包括其使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
csv文件使用逗号分割,是一种纯文本格式,不能指定字体颜色等样式,也不能指定单元格的宽高,不能合并单元格,没有多个工作表等功能,可以使用Excel打开。使用csv模块可以把一些数据做成表格等处理,非常方便。
CSV常用方法
csv.reader(f) 读取csv文件,f为打开csv文件的文件对象,返回的本质是一个迭代器,具有__next__(),__iter__()方法
csv.writer(f) 写入csv文件
csv.DictReader(f) 类字典方式读取csv文件
csv.DictWriter(f) 类字典方式写入csv文件
指定分隔符
csv.writer(f,delimiter='t') 指定分隔符为一个制表符,默认为逗号
csv.writer(f,delimiter=' ') 指定分隔符为空格
写入一行
file = csv.writer(f)
file.writerow([1,'tom'])
写入多行
data = [
[1,'tom'],
[2,'jerry'],
[3,'harry']
]
with open('test.csv','w+') as f:
file = csv.writer(f)
for row in data:
file.writerows(row)
示例一
from pathlib import Path
import csv
class CSV():
def __init__(self,file,content):
self.file = file
self.content = content
def CheckFile(self): #检查文件是否存在,不存在则创建
if not Path(self.file).parent.exists():
Path(self.file).parent.mkdir(parents=True)
else:
if not Path(self.file).exists():
Path(self.file).touch(exist_ok=True)
def CSVRead(self):
with open(str(self.file)) as f:
reader = csv.reader(f)
print(next(reader))
def CSVWrite(self):
with open(str(self.file),'a+') as f:
w = csv.writer(f)
for rows in self.content:
w.writerow(rows)
if __name__ == '__main__':
row = [[4,'tom',22,'tom'],
[1,'james',34,'wade']
]
fei = CSV('/Users/fei/tmp/ops/ccc.csv',row)
fei.CSVWrite()
with open('/Users/fei/tmp/ops/ccc.csv','r+') as f:
read = csv.reader(f) #读取csv文件,返回的是一个可迭代类型
for file in read:
print(read.line_num,file)
示例二
from pathlib import Path
import csv
class CSV():
def __init__(self,file,header,content):
self.file = file
self.content = content
self.header = header
def CheckFile(self):
if not Path(self.file).parent.exists():
Path(self.file).parent.mkdir(parents=True)
else:
if not Path(self.file).exists():
Path(self.file).touch(exist_ok=True)
def CSVRead(self):
with open(str(self.file)) as f:
reader = csv.DictReader(f)
for row in reader:
print(row)
def CSVWrite(self):
with open(str(self.file),'a+',newline='') as f:
w = csv.DictWriter(f,self.header) #添加表头
w.writeheader() #调用添加表头的方法
for row in self.content:
w.writerow(row)
if __name__ == '__main__':
headers = ['name','age']
datas = [
{'name': 'tom','age': 23},
{'name': 'jerry','age': 24},
{'name': 'james','age': 22}
]
filecsv = CSV('/Users/fei/tmp/ops/ddd.csv',headers,datas)
filecsv.CSVWrite()
filecsv.CSVRead()
- Struts2【整合Spring】
- Struts2【开发Action】
- 算法07 五大查找之:索引查找
- Struts2【拦截器】
- 算法08 五大查找之:二叉排序树(BSTree)
- Struts2【UI标签、数据回显、资源国际化】
- mybatis-plus思维导图,让mybatis-plus不再难懂
- 10(01)总结形式参数,包,修饰符,内部类
- Java的参数传递是值传递还是引用传递
- 通过shell脚本来得到不稳定的执行计划(r4笔记第40天)
- Struts2【OGNL、ValueStack】
- 如何用Python爬虫实现图片自动下载?
- Hibernate【查询详解、连接池、逆向工程】
- Hibernate【缓存】知识要点
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 嵌入式linux之go语言开发(九)关于嵌入式GUI
- docker入门总结,从使用的角度谈起
- 使用 Go 语言开发 Android 应用的正确姿势探索
- Android的配置文件操作的完美封装(使用注解 反射让配置文件操作如此清晰和简单)
- Android中protobuf的使用
- 疫情监控三部曲——在STM32F103 MCU上实现(裸机版)
- Android配置文件操作模块封装,全互联网最简单好用的封装
- 使用logcat让Android应用支持查看实时日志并输出至界面显示功能
- 如何处理redis集群的hot key和big key
- 嵌入式linux之go语言开发(十一)让web服务器跑在终端上,通过网页配置终端参数
- 嵌入式linux之go语言开发(十二)参数配置文件存储模块开发
- 嵌入式linux之go语言开发(十三)LittlevGL,漂亮的嵌入式GUI的go语言绑定
- 同事问我MySQL怎么递归查询,我懵逼了...
- RocketMQ学习四-生产者producer
- 想有自己的博客吗?浏览器支持 MarkDown和语法高亮的最简单示例(使用markdown-it、highlight.js和mermaid)