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()
- 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 数组属性和方法
- hadoop数据类型及自定义
- 惊!u202a错误,百分之九十都不知道的隐藏在文件路径里的惊天秘密!(干货收藏)
- 百度站点收录 - 什么叫自动推送
- 虚拟机安装Centos后的一些配置
- CentOS下的JDK安装
- python 技术篇-3行代码搞定图像文字识别,pytesseract库实现
- hadoop2.6.0完全分布式手动安装
- Python 库安装问题:ModuleNotFoundError: No module named 'windows'. 解决方法
- Python各种文件删除函数的功能区分!
- Python 技术篇-轻松操作windows系统电脑鼠标指针移动、点击
- Typora Picgo自动使用图床上传图片
- 【Python】文件的选择性压缩和全压缩,一般人不告诉的实用小技巧!
- 搭建hadoop集群虚拟机试验环境
- PLSQL-简单的语句块及变量的定义
- Python 技术篇-使用PIL库等比例压缩、缩小图片