数据存储-CSV

简介

逗号分隔值(Comma-Separated Values,CSV,其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。通常,所有记录都有完全相同的字段序列。通常都是纯文本文件。

泛指有以下特征的文件:

  • 纯文本,使用某个字符集
  • 由记录组成(典型的是每行一个记录)
  • 每条记录被分隔符分割成字段
  • 每条记录都有相同的字段序列

对列表写入读取示例

  • write():返回一个writer对象,负责将用户的数据转换为给定的类文件对象上的分隔字符串
  • writerow():写入一行数据
  • writerows():写入多行数据
  • reader():返回迭代器
  • next():返回迭代器的下一项,这里是为了去掉表头,直接指向数据
import csv

header = [ 'username','age','country']
data = [
    ('张三','18','CN'),
    ('hal','17','CN'),
    ('root','16','CN')
]
# 写入文件
# writerow()写入一行
# writerows()写入多行
with open('user.csv','w',newline='',encoding='utf-8') as fp:
    writer = csv.writer(fp)
    # 写入一行表头
    writer.writerow(header)
    # 写入多行数据
    writer.writerows(data)

# 从文件中读取
with open('user.csv','r',encoding='utf-8') as fp:
    # reader()返回的是迭代器
    reader = csv.reader(fp)
    # 不要表头,可以next()函数指向下一行
    next(reader)
    for row in reader:
        print(row)

运行结果:
在这里插入图片描述

对字典写入读取示例

  • 对字典写入要用DictWriter()创建对象
  • 写入的时候不要忘记writeheader(),写入表头
import csv

persons = [
    {
        'username':"张三",
        'age':18,
        'country':'china'
    },
    {
        'username':"root",
        'age':16,
        'country':'china'
    },
    {
        'username':"hal",
        'age':15,
        'country':'china'
    }
]
header = ['username','age','country']

# 写入文件
with open('userdict.csv','w',newline='',encoding='utf-8') as fp:
    writer = csv.DictWriter(fp,header)
    # 写表头
    writer.writeheader()
    # 写入单行数据
    writer.writerow({'username':'单行','age':'1','country':'CN'})
    # 写入多行数据
    writer.writerows(persons)


# 从文件中读取
with open('userdict.csv','r',encoding='utf-8') as fp:
    reader= csv.DictReader(fp)
    for x in reader:
        print(x['username'],x['age'],x['country'])

执行结果:
在这里插入图片描述
参考链接:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值