26 November 2013

python强大功能之一在于其丰富的库,比如这个处理csv文件的库,实在有够强大。什么是csv文件?根据百度百科的解释:

CSV是(逗号分隔值)的英文缩写,通常都是纯文本文件。建议使用WORDPAD或是记事本(NOTE)来开启,再则先另存新档后用EXCEL开启,也是方法之一。

一直以为csv是某种Excel文件,原来是一种纯文本文件,尝试用记事本打开一个csv文件:

果然,在记事本中是以逗号为分隔符,而excel中显示的是三列数据。当然我们自己写个读取的程序是可以的,但python提供了一个读写csv文件更强大的库——csv。例如上面这个例子:

import csv
with open( './data.csv', 'rb') as f:
    reader = csv.reader(f)
    for row in reader:
        print row
       
f.close()

输出为:

['name', 'address', 'age']

file函数打开csv文件,选项中的’b’指打开的是文件。我们尝试往csv文件写内容:

import csv
with open( './data.csv', 'wb') as f:
    writer = csv.writer(f)
    writer.writerow(['name', 'address', 'age'])
    data = [
            ( 'xiaoming ','china','10'),
            ( 'Lily', 'USA', '12')]
    writer.writerows(data)
       
f.close()

看看结果:

writerow写入一行内容,而writerows写入多行数据。我们修改一下代码,将:

writer = csv.writer(f)

修改为:

writer = csv.writer(f, delimiter=';')

输出为:

其实也可以是空格,这是writer的一些参数。事实证明,csv文件需要逗号分隔才会在Excel中显示为列。csv库还有很多用法,在此不再累述,相关请查看该文档



blog comments powered by Disqus