import csv
import chardet
import xlrd
from openpyxl import load_workbook
class TableRead(object):
CSV = 'csv'
XLSX = 'xlsx'
XLS = 'xls'
def __init__(self,path):
self.path = path
self.fileType = path.split('.')[-1]
if self.fileType not in [TableRead.CSV,TableRead.XLS,TableRead.XLSX]:
raise NameError('文件类型错误')
self._intFile()
def _intFile(self):
if self.fileType == TableRead.CSV:
self._initCsv()
elif self.fileType == TableRead.XLSX:
self._initXlsx()
else:
self._initXls()
def _initCsv(self):
f = open(self.path, 'r', encoding=self._detectCoding())
dialect = self._detectDelimiters()
self.file = csv.reader(f, dialect)
self.sheet = self.file
self.rows = self.file.__iter__()
def _initXlsx(self):
file = load_workbook(
self.path,
read_only=Tru