python--csv文件读写

  最近刚注册了kaggle账号,练习了下简单的knn算法用于手写数字识别。下载的训练和测试文本都是使用csv文件存储的,所以在此重拾下csv模块。

  • csv文件

  csv全称(Comma-Separated Values)是一种格式化文件,也称为字符分割值。记录之间由换行符分割,每条记录由字段组成,字段间分隔符通常是逗号或者制表符。通常,所有的记录有完全相同的字段序列。

  python处理csv文件时,可以调用内置模块csv。

  • 读操作

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

  参数:

csvfile,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对象,打开时需要加"b"标志参数。
dialect,编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义,通过调用register_dialect方法来注册。
fmtparam,格式化参数,用来覆盖之前dialect对象指定的编码风格。
#coding:utf-8
import csv
def read_csv():
    with open('read_csv.csv','r') as file:
        lines = csv.reader(file)
        for l in lines:
            print l
读csv
['id', 'name']
['1', 'a']
['2', 'b']
['3', 'c']
['4', 'd']
读取结果
  • 写操作

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

   参数上同

def write_csv():
    result = [[5,'e'],[6,'f']]
    with open('write_csv.csv','wb') as file:
        mywriter = csv.writer(file)
        mywriter.writerows(result)
        mywriter.writerow([7,'g'])
写文件

 

 

   注意几点:读取的字段默认是字符类型。写文件可以选择多条记录一起,也可以单条记录,记录用序列表示。

 

原文地址:https://www.cnblogs.com/hithink/p/7219102.html