前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python基础—csv模块使用

python基础—csv模块使用

作者头像
dogfei
发布2020-07-31 13:32:07
8060
发布2020-07-31 13:32:07
举报
文章被收录于专栏:devops探索devops探索

csv文件使用逗号分割,是一种纯文本格式,不能指定字体颜色等样式,也不能指定单元格的宽高,不能合并单元格,没有多个工作表等功能,可以使用Excel打开。使用csv模块可以把一些数据做成表格等处理,非常方便。

CSV常用方法

代码语言:javascript
复制
csv.reader(f)   读取csv文件,f为打开csv文件的文件对象,返回的本质是一个迭代器,具有__next__(),__iter__()方法
csv.writer(f)   写入csv文件
csv.DictReader(f)    类字典方式读取csv文件
csv.DictWriter(f)    类字典方式写入csv文件

指定分隔符

代码语言:javascript
复制
csv.writer(f,delimiter='\t')   指定分隔符为一个制表符,默认为逗号
csv.writer(f,delimiter=' ')    指定分隔符为空格

写入一行

代码语言:javascript
复制
file = csv.writer(f)
file.writerow([1,'tom'])

写入多行

代码语言:javascript
复制
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)

示例一

代码语言:javascript
复制
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)

示例二

代码语言:javascript
复制
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()
本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-02-27,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
文件存储
文件存储(Cloud File Storage,CFS)为您提供安全可靠、可扩展的共享文件存储服务。文件存储可与腾讯云服务器、容器服务、批量计算等服务搭配使用,为多个计算节点提供容量和性能可弹性扩展的高性能共享存储。腾讯云文件存储的管理界面简单、易使用,可实现对现有应用的无缝集成;按实际用量付费,为您节约成本,简化 IT 运维工作。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档