zoukankan      html  css  js  c++  java
  • python csv读写

    举几个例子来介绍一下,Python 的 CSV模块的使用方法,包括,reader, writer, DictReader, DictWriter.register_dialect

    一直非常喜欢python的csv模块,简单易用,经常在项目中使用,现在举几个例子说明一下。

    reader(csvfile[, dialect='excel'][, fmtparam])

    参数表:

    csvfile
            需要是支持迭代(Iterator)的对象,并且每次调用next方法的返回值是字符串(string),通常的文件(file)对象,或者列表(list)对象都是适用的,如果是文件对象,打开是需要加"b"标志参数。

    dialect
            编码风格,默认为excel方式,也就是逗号(,)分隔,另外csv模块也支持excel-tab风格,也就是制表符(tab)分隔。其它的方式需要自己定义,然后可以调用register_dialect方法来注册,以及list_dialects方法来查询已注册的所有编码风格列表。

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

    例子:

    import csv

    reader = csv.reader(file('your.csv', 'rb'))
    for line in reader:
        print line

    writer(csvfile[, dialect='excel'][, fmtparam])

    参数表(略: 同reader, 见上)

    例子:

    import csv

    writer = csv.writer(file('your.csv', 'wb'))
    writer.writerow(['Column1', 'Column2', 'Column3'])
    lines = [range(3) for i in range(5)]
    for line in lines:
    writer.writerow(line)


    1. 写入并生成csv文件
    代码:
    # coding: utf-8
     
    import csv
     
    csvfile = file('csv_test.csv', 'wb')
    writer = csv.writer(csvfile)
    writer.writerow(['姓名', '年龄', '电话'])
     
    data = [
        ('小河', '25', '1234567'),
        ('小芳', '18', '789456')
    ]
    writer.writerows(data)
     
    csvfile.close()
     
    • wb中的w表示写入模式,b是文件模式
    • 写入一行用writerow
    • 多行用writerows
     
    2. 读取csv文件
    代码:
    # coding: utf-8
     
    import csv
     
    csvfile = file('csv_test.csv', 'rb')
    reader = csv.reader(csvfile)
     
    for line in reader:
        print line
     
    csvfile.close() 
     
    运行结果:
    root@he-desktop:~/python/example# python read_csv.py 
    ['xe5xa7x93xe5x90x8d', 'xe5xb9xb4xe9xbex84', 'xe7x94xb5xe8xafx9d']
    ['xe5xb0x8fxe6xb2xb3', '25', '1234567']
    ['xe5xb0x8fxe8x8axb3', '18', '789456']
     
     
     
     

    python中有一个读写csv文件的包,直接import csv即可。利用这个python包可以很方便对csv文件进行操作,一些简单的用法如下。

    1. 读文件

    csv_reader = csv.reader(open('data.file', encoding='utf-8'))
        for row in csv_reader:
            print(row)

    例如有如下的文件

    输出结果如下

    ['0.093700','0.139771','0.062774','0.007698']

    ['-0.022711','-0.050504','-0.035691','-0.065434']

    ['-0.090407','0.021198','0.208712','0.102752']

    ['-0.085235','0.009540','-0.013228','0.094063']

    可见csv_reader把每一行数据转化成了一个list,list中每个元素是一个字符串

    2. 写文件

    读文件时,我们把csv文件读入列表中,写文件时会把列表中的元素写入到csv文件中。

    list = ['1', '2','3','4']
    out = open(outfile, 'w') csv_writer = csv.writer(out) csv_writer.writerow(list)

    可能遇到的问题:直接使用这种写法会导致文件每一行后面会多一个空行。

    解决办法如下:

    out = open(outfile, 'w', newline='')
    csv_writer = csv.writer(out, dialect='excel')
    csv_writer.writerow(list)
  • 相关阅读:
    读《持续交付2.0》
    “兼职”运维的常用命令
    技术管理者怎样跳出“泥潭”
    使用RabbitMQ实现接口补偿
    dotNET Core 中怎样操作 AD?
    dotNET Core实现分布式环境下的流水号唯一
    Git 远程仓库
    分之管理
    git 基本操作----git diff
    git 基本操作----git reset、log
  • 原文地址:https://www.cnblogs.com/hushaojun/p/6337993.html
Copyright © 2011-2022 走看看