当前位置:   article > 正文

python使用(一)CSV_python中csv的用法

python中csv的用法

1、csv简介

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

2、csv模块中的函数

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

参数说明:

  • 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
    文件中的文本按行打印,每一行的元素都是以逗号分隔符','分隔得来。
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
writer(csvfile, dialect='excel', **fmtparams)
  • 1
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)  
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7

'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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

实例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 画图,最强的配合
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop】
推荐阅读
相关标签
  

闽ICP备14008679号