csv文件很方便读取。我们公司的运营部最近要面对新项目上线,需要导入很多数据批量到数据库中。无疑的,csv是个很好的选择。下面是我写的一个读取csv文件的方法,使用的是python2.7.5:
1 #!/usr/bin/python 2 # -*- coding: utf-8 -*- 3 # @Date : 2014-04-17 4 # @Author : yfl <yerugemimi@gmail.com> 5 # @Link : https://github.com/YeRuGeMiMi 6 # @Version : 1.0 7 8 #CSV文件的操作工具类 9 #环境:python 2.7.5 10 11 import os.path 12 13 14 #csv_get_lines 读取CSV文件中指定行的数据,使用的是第一行是title的格式 15 #param: csvfile csv文件路径 16 #param:lines 读取指定行数 17 #param: offset 开始行数 18 #param: sign 分隔符 19 #return: [] 20 def csv_get_lines(csvfile,lines,offset=0,sign=‘,‘): 21 #判断文件是否存在 22 if not os.path.exists(csvfile) : 23 return False 24 f=open(csvfile,‘r‘) 25 i=0 26 j=0 27 datas=[] 28 for line in f : 29 #读取title 30 if i == 0: 31 line=line.strip(‘\n‘) 32 titles=line.split(sign) 33 34 #跳到指定的开始行 35 i=i+1 36 if i<offset : 37 continue 38 39 #以[{title:data,title:data,title:data}]的格式输出数据 40 if j<lines : 41 j=j+1 42 line=line.strip(‘\n‘) 43 data=line.split(sign) 44 #判断文件的格式是否正确 45 if not len(titles) == len(data) : 46 return False 47 48 datas.append(dict(zip(titles,data))) 49 50 return datas
这个方法对于格式的检查还是太差了,我仅仅只对数目进行了检查。恩,过个几天再增强一下。或许应该讲检查抽取成另一个方法。
这个方法,我还用java实现了。就不贴出来,感兴趣的,可以访问我的github: