最近刚注册了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‘])
写文件
注意几点:读取的字段默认是字符类型。写文件可以选择多条记录一起,也可以单条记录,记录用序列表示。
时间: 2024-12-28 17:27:53