python模块--csv

描述:
csv模块是用来处理csv文件的一个模块
CSV:(Comma-Separated Values)即逗号分隔值,可以用Excel打开查看。由于是纯文本,任何编辑器也都可打开。与Excel文件不同,CSV文件中:

  • 值没有类型,所有值都是字符串
  • 不能指定字体颜色等样式
  • 不能指定单元格的宽高,不能合并单元格
  • 没有多个工作表
  • 不能嵌入图像图表

在CSV文件中,以“,”作为分隔符,分隔两个单元格。像这样a,,c表示单元格a和单元格c之间有个空白的单元格。依此类推。

不是每个逗号都表示单元格之间的分界。所以即使CSV是纯文本文件,也坚持使用专门的模块进行处理。

读取csv文件的两个方法:

  1. reader:
  2. DictReader:

文件名:t.csv
csv文件内容:

name,age
zhangsan,21
lisi,20
yilisabai,19
rose,18

代码示例:

import csv



# 打印列表里的元素
def print_element(list):
    # print("==")
    for i in dict_reader:
        print(i)

    # 分割线
def cut_off():
    print("_" * 100)

# 文件路径
file_path = "e:/t.csv"
# 打开文件
with open(file_path) as file:
    print("代码块1:")
    reader = csv.reader(file)

    cut_off()
    print("直接打印reader方法获得的对象:",reader)
    cut_off()
    print("迭代打印reader方法获得的对象:")

    for v in reader:
        print(v)
    cut_off()
    # print("代码块2:")
    # dict_reader = csv.DictReader(file)
    # print("直接打印DictReader方法获得的对象:" ,dict_reader)
    # cut_off()
    # print("迭代打印DictReader方法获得的对象:")
    # for i in dict_reader:
    #     print(i)
    #
    # cut_off()


    file.close()

运行结果:

代码块1:
____________________________________________________________________________________________________
直接打印reader方法获得的对象: <_csv.reader object at 0x000002917DFFD868>
____________________________________________________________________________________________________
迭代打印reader方法获得的对象:
['name', 'age']
['zhangsan', '21']
['lisi', '20']
['yilisabai', '19']
['rose', '18']
____________________________________________________________________________________________________

Process finished with exit code 0

由代码块1可以看出,两个方法返回的都是迭代器对象,reader方法在迭代后的每一行都是一颗列表,并且是按照文件的内容返回的(结果 5 rows)

____________________________________________________________________________________________________
代码块2:
直接打印DictReader方法获得的对象: <csv.DictReader object at 0x000001B9621405C0>
____________________________________________________________________________________________________
迭代打印DictReader方法获得的对象:
OrderedDict([('name', 'zhangsan'), ('age', '21')])
OrderedDict([('name', 'lisi'), ('age', '20')])
OrderedDict([('name', 'yilisabai'), ('age', '19')])
OrderedDict([('name', 'rose'), ('age', '18')])

Process finished with exit code 0
____________________________________________________________________________________________________

DictReader方法返回的值是元组类型,并且将内容组成了k,v的形式。(结果 4 rows)

参考:
博客1:https://blog.csdn.net/ko_tin/article/details/72627266
博客2:https://www.cnblogs.com/yanglang/p/7126660.html

未完成

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值