zoukankan      html  css  js  c++  java
  • Python2.7-csv

    csv 模块,用于读写 csv 文件,常用 reader 和 writer 对象进行操作

    1、模块的类

    1.1 Dialect 对象,设置 csv 文件的各种格式,包括分隔符,引用符,转义符等

    1.1.1 对象属性

    delimiter:单字符分隔符,默认','
    quotechar:单字符引用符,当内容中包含特定字符时,如分隔符、引用符、换行符等,将内容用指定字符括起来,排除歧义,默认'"'
    escapechar:单字符转义符,写文件时如果 quoting 为 QUOTE_NONE 则转义分隔符,如果 doublequote 为 False 则转义引用符。读文件时,可以正确识别转义后的内容。默认 None,不支持转义
    doublequote:控制内容里出现了引用符时的操作,默认 True,引用符成倍出现,为 False 时,在引用符前加转义符
    quoting:控制何时使用引用符,默认 QUOTE_MINIMAL,模块内还定义了其他 QUOTE_* 常量
    lineterminator:写文件时指定换行符,默认 ' '
    skipinitialspace:默认 False,不忽略分隔符后的空格
    strict:默认 False,输入 csv 损坏时不抛出异常

    1.2 reader 对象

    1.2.1 初始化构建类:reader(csvfile, dialect='excel', **fmtparams)

    参数设置:
    csvfile:要打开读取的文件对象或是列表对象,只要每次迭代可以返回一个字符串,文件对象用‘b’模式打开能避免不同平台产生错误
    dialect:设置 csv 文件的格式,是 Dialect 类的一个子类
    fmtparams:也用于设置格式,可以覆盖 dialect 的设置

    1.2.2 实例方法

    next():列表形式返回下一行数据

    1.2.3 对象属性

    dialect:只读的 dialect 描述
    line_num:从源迭代器读到的行数

    1.3 writer 对象

    1.3.1 初始化构建类:writer(csvfile, dialect='excel', **fmtparams),参数设置同 reader 对象

    1.3.2 实例方法

    writerow(row):写一行,格式根据指定的 dialect
    writerows(rows):写许多行

    1.3.3 对象属性

    dialect:只读的 dialect 描述

    1.4 DictReader 对象,本质上是 reader 对象的子类

    1.4.1 初始化构建类:DictReader(f, fieldnames=None, restkey=None, restval=None, dialect='excel', *args, **kwds),将文件内容读入一个字典中

    参数设置:
    f:文件对象
    fieldnames:字典的键值,如果省略了,就以文件第一行作为字典键值
    restkey:键个数少于一行中内容数,多余内容就被加入到 restkey 中
    restval:键个数多于一行中内容数,剩余键对应值用 restval 代替
    dialect、args、kwds:设置格式,会传入 reader 对象里

    1.4.2 实例方法,同 reader 对象

    1.4.3 对象额外属性

    fieldnames:字典键值

    1.5 DictWriter 对象,本质上是 writer 对象的子类

    1.5.1 初始化构建类:DictWriter(f, fieldnames, restval='', extrasaction='raise', dialect='excel', *args, **kwds),将内容根据字典对应写入文件中

    参数设置:
    f:文件对象
    fieldnames:字典的键值
    restval:内容里缺少了一些键-值,缺少的键-值用 restval 代替
    extrasaction:内容里有不包含在 fieldnames 里的键,设置 'raise' 抛出异常,'ignore' 忽略多出来的内容
    dialect、args、kwds:设置格式,会传入 writer 对象里

    1.5.2 实例额外方法

    writeheader():输出包含内容名的一行

    1.5.3 对象属性,同 writer 对象

    1.6 excel 对象,定义了通常情况下 excel 生成的 csv 文件格式,dialect 名 'excel'

    1.7 excel_tab 对象,定义了通常情况下 excel 生成的用 tab 分割的 csv 文件格式,dialect 名 'excel-tab'

    1.8 Sniffer 对象,用于推断 csv 文件格式

    1.8.1 实例方法

    sniff(sample, delimiters=None):分析给定样本,返回拥有找到的参数的值的 Dialect 对象,delimiter 指定时,样本内容会根据指定值分割
    has_header(sample):分析样本文本,假设成 csv 格式,判断第一行是否是一系列的标题

    2、模块常量

    csv.QUOTE_ALL:指定 writer 对象对所有内容都加上引用符
    csv.QUOTE_MINIMAL:指定 writer 对象只对出现特定字符的内容加引用符
    csv.QUOTE_NONNUMERIC:指定 writer 对象对所有非数字内容加引用符,指定 reader 对象把所有没加引用符的内容转换成 float 类型
    csv.QUOTE_NONE:指定 writer 对象不对任何内容加引用符,当内容中出现了分隔符用转义字符标注,未定义转义字符则抛异常,指定 reader 对象不做任何引用符的预处理

    3、模块方法

    csv.register_dialect(name, [dialect, ]**fmtparams):把特定格式与 name 绑定
    csv.unregister_dialect(name):删除格式与 name 的绑定
    csv.get_dialect(name):返回指定 name 的格式
    csv.list_dialects():返回所有绑定的名字
    csv.field_size_limit([new_limit]):返回当前每个内容允许的最大大小,给定 new_limit 则改成指定值

    ---------------- 坚持每天学习一点点
  • 相关阅读:
    MyBatis(十):MyBatis懒加载 延迟加载详解
    MyBatis(九):MyBatis类型处理器(TypeHandler)详解
    MyBatis(八):MyBatis插件机制详解
    MyBatis(七):MyBatis缓存详解(一级缓存/二级缓存)
    MyBatis(六):MyBatis复杂映射
    内省概念及详解(MethodDescriptor、PropertyDescriptor)
    反射概念及详解
    sublime3 + chrome + xdebug调试php代码
    php的文件系统和程序执行函数整理
    php编程趣事:乘法口诀、百钱买百鸡、过桥等问题
  • 原文地址:https://www.cnblogs.com/tccbj/p/8514411.html
Copyright © 2011-2022 走看看