CSV工具类是Python中的自带包,用来解析CSV文件。
- 实例化一个CSV对象,需要传入一个CSV文件的路径
with open('./case.csv') as casefile
-
csv.DictReader()
将CSV读取成字典的形式
rows2 = csv.DictReader(casefile)
print rows2
# [{'paxID': '111', 'daxID': '222', 'merID': '333'}, {'paxID': '444', 'daxID': '555', 'merID': '666'}]
- 取一个值
rows2[rowNum][colunmName]
print rows2[2]['paxID']
#444
-
csv.reader()
将CSV读取成list
rows = csv.reader(casefile)
row_list = [row for row in rows]
print row_list
# [['paxID', 'daxID', 'merID'], ['111', '222', '333'], ['444', '555', '666']]
- 封装一个csv 工具类
#coding=UTF-8
import csv
import traceback
class CSV:
def __init__(self,filePath):
self.filePath = filePath
self.allRows = None
try:
with open(self.filePath) as csvfile:
rows = csv.DictReader(csvfile)
self.allRows = [row for row in rows]
except:
traceback.print_exc()
def getAll(self):
return self.allRows
def getCell(self, rowNum, colunmName):
cell = ''
if rowNum > 0 and colunmName != None:
try:
cell = self.allRows[rowNum-1][colunmName]
except:
print 'colunmName is inexistent'
else:
print 'rowNum should begin from 1 or colunmName is invalid'
return cell
#取csv的标题行,字典中的keys
def getFirstRow(self):
try:
dict1 = self.allRows[0]
keys = dict1.keys()
except:
traceback.print_exc()
return keys
#取某一纵列的值
def getColunmName(self, name):
#创建一个数组,循环大数据,每个字典取Key是name的值,追加到数组中,返回
result = None
for d in self.allRows:
try:
result.append(d[name])
except:
traceback.print_exc()
return result