19#csv文件操作

一、csv文件的定义
	csv是一种用逗号将一行数据隔开的文本文件,这种文件可以用表格来打开,多用于数据接处理中数据的提供和保存。
二、python中对csv文件写操作
python的标准库中有一个csv库,专门用来提供和csv文件的相关操作

import csv
# 1)csv文件的写操作方式一      -    以列表的形式写入数据
"""
with open(file, mode='r', encoding='utf-8', newline='') as f:
     file:表示文件路径
     mode:文件的打开方式
     encoding:文本文件的编码方式,一般设置为'utf-8'
     newline:表示格式,一般设置为空

   	writer(写对象) = csv.writer(csv文件对象)
    #写入一条数据
    writer.writerow(元素是一行为列表的内容)
    #写入多条数据
    writer.writerows(元素是列表的列表)
"""    
with open('files/学生信息.csv', 'w', encoding='utf-8', newline='') as f:
    writer = csv.writer(f)
    writer.writerow(['姓名', '成绩', '年龄'])
    writer.writerows([
        ['张三', 90, 28],
        ['李四', 76, 23],
        ['小明', 100, 18]
    ])
"""
# 2)csv文件的写操作方式二       --   以字典的形式写入数据
	writer(写对象) = csv.DictWriter(文件对象, 字段名列表)
    #单独添加头部数据(将字段名中的列表的元素作为第一行的数据写入文件)
    writer.writeheader()
    #写入一条数据
    writer.writerow(元素是一行为字典的里面的内容)
    #写入多条数据
    writer.writerows(元素是一个列表里面有多个字典的内容)
"""   
with open('files/商品信息.csv', 'w', newline='', encoding='utf-8') as f:
    # 创建writer
    # csv.DictWriter(文件对象, 字段名列表)
    writer = csv.DictWriter(f, ['name', 'price', 'count'])
    # 单独添加头部数据(将字段名列表中的元素作为第一行的数据写入文件中)
    # writer.writeheader()
    writer.writerow({'name': '商品名称', 'price': '商品单价', 'count': '商品库存'})
    # 添加一条其他的数据
    writer.writerow({'name': '鞋子', 'price': 300, 'count': 100})
    # 同时添加多条其他的数据
    writer.writerows([
        {'name': '衣服', 'price': 85, 'count': 300},
        {'name': '帽子', 'price': 34, 'count': 230},
        {'name': '包', 'price': 500, 'count': 50}
    ])
三、python中对csv文件的读操作
import csv

# 1.以列表的形式读数据
with open('files/商品信息.csv', newline='', encoding='utf-8') as f:
    # 获取文件中的内容,返回值reader本质就是一个迭代器,迭代器中的元素是每一行内容对应的列表
    reader = csv.reader(f)

    # a.一行一行的获取数据
    # # 单独取出第一行的数据
    # next(reader)
    #
    # # 遍历其他行的数据
    # for x in reader:
    #     print('x:', x)

    # b.同时获取所有数据
    data = list(reader)
    print(data)


# 2.以字典的形式的读数据
with open('files/商品信息.csv', newline='', encoding='utf-8') as f:
    reader = csv.DictReader(f)

    # # 直接获取第一行数据对应的列表
    # print(reader.fieldnames)      # ['商品名称', '商品单价', '商品库存']
    #
    # # 遍历获取每一行数据对应的字典(需要将元素转换成字典)
    # for x in reader:
    #     print('x:', dict(x))

    # print(list(reader))
    new_reader = list(map(lambda item: dict(item), reader))
    print(new_reader)

    all_name = list(map(lambda item: item['商品名称'], new_reader))
    print(all_name)
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值