zoukankan      html  css  js  c++  java
  • python CSV模块的使用

    简介

    CSV(comma separated values),逗号分隔值(字符分割值,字符可以不是逗号),常用的文本格式,用以存储表格数据,包括数字或者字符。kaggle就是csv格式,python有内置的csv模块。

    csv中的函数

    1、reader(csvfile,dialect='excel',**fmtparams)

    csvfile,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加"b"标志参数。

    dialect,编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义,通过调用register_dialect方法来注册。

    fmtparam,格式化参数,用来覆盖之前dialect对象指定的编码风格。

    import csv
    with open("test.csv","rb") as myfile:
        lines = csv.reader(myfile)
        for line in lines:
            print line

    lines是list,调用lines,next()函数,会返回一个string。

    line是列表,元素是csv用逗号分隔得来的。

    输出结果:

    reader对象还提供一些方法:line_num、dialect、next()

    2、writer(csvfile,dialect='excel',**fmtparams)

    with open('test.csv','wb') as myfile:
        mywriter = csv.writer(myfile);
        mywriter.writerow([7,'g'])
        mywriter.writerow([8,'h'])
        mylist = [[1,2,3],[4,5,6]
        mywriter.writerows(mylist)

    writerow是一行一行写;writerows是一次写多行。

    如果test.csv事先存在,就会调用writer函数清空原来文件的内容,再开始写;没存在,就创建它,writer函数返回myfile文件。

    补充:除了writerow、writerows,writer对象还提供了其他一些方法:writeheader、dialect

    3、register_dialect(name,[dialect,],**fmtparams)

    name,你所自定义的dialect的名字,比如默认的是'excel',你可以定义成'mydialect'。

    [dialect, ]**fmtparams,dialect格式参数,有delimiter(分隔符,默认的就是逗号)、quotechar、quoting等等

    csv.register_dialect('mydialect',delimiter='|', quoting=csv.QUOTE_ALL)

    上面代码自定义了一个命名为mydialect的dialect,参数是设置了delimiter和quoting这两个,其他的采用默认值,其中分隔符是'|'。

    效果,在csv中存储数据:

    以mydialect风格打印:

    with open('text.csv','rb') as myfile:
        lines = csv.reader(myfile,'mydialect')
        for line in lines:
            print line

    输出:

    对于writer函数,同样可以传入mydialect作为参数。

    4、unregister_dialect(name)

    用于注销自定义的dialect。

    此外,csv模块还提供get_dialect(name)、list_dialects()、field_size_limit([new_limit])等函数。

    csv模块还定义了

    一些类:DictReader、DictWriter、Dialect等,DictReader和DictWriter类似于reader和writer。

    一些常量:QUOTE_ALL、QUOTE_MINIMAL、.QUOTE_NONNUMERIC等,这些常量可以作为Dialects and Formatting Parameters的值。

  • 相关阅读:
    hadoop streaming 中跑python程序,自定义模块的导入
    许久未更新~~重启~~
    什么叫共轭先验或者共轭分布?
    Call for Papers International Conference for Smart Health (ICSH) 2014
    IEEE/ACM International Conference on Advances in Social Network Analysis and Mining (ASONAM) 2014 Industry Track Call for Papers
    linux 查看文件方法
    Double 保留小数点后N位
    java获取当前日期所在的周的周一,并以周一为一周开始
    Core Data Programming Guid
    UIDatePicker应用 常用属性和方法
  • 原文地址:https://www.cnblogs.com/pacino12134/p/11290397.html
Copyright © 2011-2022 走看看