首页 > 编程 > Python > 正文

python 实现批量xls文件转csv文件的方法

2020-02-15 23:20:59
字体:
来源:转载
供稿:网友

引言:以前写的一个批量xls转csv的python简单脚本,用的是python2.7

#coding=utf-8import osimport timeimport loggingimport xlrdimport csv #xls文件存放路径INPUTPATH= u"D://lsssl//桌面//xls文件" #生成的csv文件存放路径OUTPATH = u"D://lsssl/桌面//csv"  class changeCenter: def __init__(self):  pass def getvalue(self,filename):  self.mData = []  xlsfile=xlrd.open_workbook(filename)  table = xlsfile.sheet_by_index(0)#sheet1  rownum = table.nrows #行  colsnum = table.ncols #列  for i in range(0,rownum):   row = []   for j in range(0,colsnum):    value = table.cell_value(i,j)    if not isinstance(value,float):     value = value.encode('gbk')#非数字转一下码    row.append(value)   self.mData.append(tuple(row)) def write(self, path, filename):  if not os.path.exists(path):   os.makedirs(path)  csvfile = file("tmp","wb")  writer = csv.writer(csvfile)  writer.writerows(self.mData)  csvfile.close()    if os.path.exists(os.path.join(path,filename+".old")):   os.remove(os.path.join(path,filename+".old"))  if os.path.exists(os.path.join(path,filename)):   os.rename(os.path.join(path,filename),os.path.join(path,filename+".old"))  os.rename('tmp', os.path.join(path,filename))  logging.info("write file finish")  print "write",filename," finish"  def handleExcel(): files,dirs,root = readFilename(INPUTPATH) for fi in files:  strstock = os.path.join(INPUTPATH,fi)  if os.path.exists(strstock):   st = changeCenter()   st.getvalue(strstock)   name = fi.replace(".xls","")   st.write(OUTPATH, name+".csv")  else:   print strstock+" don't exist" #获取某个路径下的所有文件 def readFilename(file_dir): for root, dirs, files in os.walk(file_dir):   return files,dirs,root if __name__ == '__main__': handleExcel()

以上这篇python 实现批量xls文件转csv文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持武林站长站。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表