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

yipeiwu_com5年前Python基础

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

#coding=utf-8
import os
import time
import logging
import xlrd
import 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文件的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

Django接受前端数据的几种方法总结

背景 测试工具箱写到一半,今天遇到了一个前后端数据交互的问题,就一起做一下整理。 环境 -------------------------------------------------...

Python 中 -m 的典型用法、原理解析与发展演变

Python 中 -m 的典型用法、原理解析与发展演变

在命令行中使用 Python 时,它可以接收大约 20 个选项(option),语法格式如下: python [-bBdEhiIOqsSuvVWx?] [-c command...

Python如何使用k-means方法将列表中相似的句子归类

Python如何使用k-means方法将列表中相似的句子归类

前言 由于今年暑假在学习一些自然语言处理的东西,发现网上对k-means的讲解不是很清楚,网上大多数代码只是将聚类结果以图片的形式呈现,而不是将聚类的结果表示出来,于是我将老师给的代码和...

Django使用httpresponse返回用户头像实例代码

Django使用httpresponse返回用户头像实例代码

本文研究的主要是Django使用httpresponse返回用户头像,下面是相关实例代码。 当请求一个页面时,Django 把请求的 metadata 数据包装成一个 HttpReque...

在python中利用最小二乘拟合二次抛物线函数的方法

在python中利用最小二乘拟合二次抛物线函数的方法

1、最小二乘也可以拟合二次函数 我们都知道用最小二乘拟合线性函数没有问题,那么能不能拟合二次函数甚至更高次的函数呢?答案当然是可以的。下面我们就来试试用最小二乘来拟合抛物线形状的的图像。...