python使用(一)CSV

1、csv简介

CSV (Comma Separated Values),即逗号分隔值(也称字符分隔值,因为分隔符可以不是逗号),是一种常用的文本
格式,用以存储表格数据,包括数字或者字符。很多程序在处理数据时都会碰到csv这种格式的文件,它的使用是比
较广泛的(Kaggle上一些题目提供的数据就是csv格式),csv虽然使用广泛,但却没有通用的标准,所以在处理csv
格式时常常会碰到麻烦,幸好python内置了csv模块。下面简单介绍csv模块中最常用的一些函数。

2、csv模块中的函数

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

参数说明:

  • csvfile,必须是支持迭代(Iterator)的对象,可以是文件(file)对象或者列表(list)对象,如果是文件对
    象,//打开时需要加"b"标志参数。
  • dialect,编码风格,默认为excel的风格,也就是用逗号(,)分隔,dialect方式也支持自定义,通过调用register_dialect方法来注册, 下文会提到。
  • fmtparam,格式化参数,用来覆盖之前dialect对象指定的编码风格。
e.g:
import csv  
with open('marks.csv') as myFile:  
 lines=csv.reader(myFile)  
 for line in lines:  
     print line  
    解释:
    open()返回了一个文件对象
    myFile,reader(myFile)只传入了第一个参数,另外两个参数采用缺省值,即以excel风格读入。reader()返回一个
    reader对象lines,lines是一个list,当调用它的方法lines.next()时,会返回一个string。上面程序的效果是将csv
    文件中的文本按行打印,每一行的元素都是以逗号分隔符','分隔得来。open()返回了一个文件对象
    myFile,reader(myFile)只传入了第一个参数,另外两个参数采用缺省值,即以excel风格读入。reader()返回一个
    reader对象lines,lines是一个list,当调用它的方法lines.next()时,会返回一个string。上面程序的效果是将csv
    文件中的文本按行打印,每一行的元素都是以逗号分隔符','分隔得来。
writer(csvfile, dialect='excel', **fmtparams)
e.g:
     with open('t.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)  

'w’表示写模式。
首先open()函数打开当前路径下的名字为’t.csv’的文件,如果不存在这个文件,则创建它,返回myFile文件对象。
csv.writer(myFile)返回writer对象myWriter。
writerow()方法是一行一行写入,writerows方法是一次写入多行。
注意:如果文件’t.csv’事先存在,调用writer函数会先清空原文件中的文本,再执行writerow/writerows方法

带字段的读写:

实例1:字典方式写

datas = [{'name': 'Bob', 'age': 23},{'name': 'Jerry', 'age': 44},{'name': 'Tom', 'age': 15} ]
 
with open('test_csv_data.csv', 'w', newline='') as f:
     writer = csv.DictWriter(f, ['name', 'age'])# 标头在这里传入,作为第一行数据
     writer.writeheader()
     for row in datas:
        writer.writerow(row)
        # 还可以写入多行
        writer.writerows(datas)

实例2:字典方式读

import csv
with open('test_csv_data.csv','r') as f:
     reader = csv.DictReader(f)
     for row in reader:
         print(row['name'], row['age'])
with语句, with  open(filename)  as f:  不用f.close()关闭
numpy 和 panda 搭配 对数据进行处理,然后再搭配 matolot 画图,最强的配合
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

dearzcs

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值