Snake's Home

python csv模块介绍

csv,即逗号分隔值(Comma-Separated Values,CSV),有时也称为字符分割值(因为分隔字符也可以不是逗号),其文件以纯文本形式存储表格数据(数字和文本)。纯文本意味着该文件是一个字符序列,不含必须像二进制数字那样被解读的数据。CSV文件由任意数目的记录组成,记录间以某种换行符分隔;每条记录由字段组成,字段间的分隔符是其它字符或字符串,最常见的是逗号或制表符。

csv是一种很常用也非常简洁方便的对大量数据存储的方式,python里面也有csv模块来对这部分内容进行处理。

1
reader(csvfile[, dialect='excel'][, fmtparam])

参数:

csvfile 需要是支持迭代(Iterator)的对象,并且每次调用next方法的返回值是字符串(string),通常的文件(file)对象,或者列表(list)对象都是适用的,如果是文件对象,打开是需要加”b”标志参数。

dialect 为分隔的风格,默认为excel风格,即逗号分隔。也支持excel-tab风格,即tab分隔。

使用例子:

1
2
3
4
5
import csv

reader = csv.reader(file('my.csv', 'rb'))
for line in reader:
print line

writer:

1
writer = csv.writer(open(targetFile,"wb"),quoting=csv.QUOTE_ALL)

第一个参数表示要写入的文件对象,具体的写入可以通过writerow和writerows函数实现:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
writer.writerow(["hello","anderson"])
```



```python
__author__ = 'anderson'
import csv
import re

def readcsv(file):

yourtype = raw_input("please choose the type: ")
rule = re.compile(yourtype)

with open (file, 'rb') as readfile:
spamreader = csv.reader(readfile)
for row in spamreader:
for i in range(len(row)):
1
2
3
4
5
6
7
8
9
10
11
12
13
def writecsv(self, data):
with open ('jsonfile.csv', 'a+') as csvfile:
spamwriter = csv.writer(csvfile,dialect='excel')
spamwriter.writerow(data)

def readcsv(self, file):
with open (file, 'rb') as readfile:
spamreader = csv.reader(readfile)
for row in spamreader:
line = row.split(',')
for each_line in line:
if each_line != " ":
print each_line