python--csv文件读写
阅读原文时间:2023年07月15日阅读:1

  最近刚注册了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']
['', 'a']
['', 'b']
['', 'c']
['', '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'])

写文件

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