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

作者:浮沙沉海 时间:2023-08-29 10:25:26 

引言:以前写的一个批量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()

来源:https://blog.csdn.net/lishenluo/article/details/79244176

标签:python,xls,csv
0
投稿

猜你喜欢

  • ASP网站Server object error的解决办法

    2008-11-07 15:57:00
  • mybatis分页插件pageHelper详解及简单实例

    2024-01-19 17:35:25
  • asp OpenTextFile文本读取与写入实例代码

    2011-04-15 11:00:00
  • Python环境Pillow( PIL )图像处理工具使用解析

    2022-12-08 16:04:48
  • Python利用Flask-Mail实现发送邮件详解

    2023-09-29 03:02:18
  • Python开发网站目录扫描器的实现

    2022-07-09 11:51:02
  • pytorch实现手写数字图片识别

    2021-04-20 12:46:58
  • 浅谈python中真正关闭socket的方法

    2023-11-02 15:41:56
  • 如何用mysql自带的定时器定时执行sql(每天0点执行与间隔分/时执行)

    2024-01-16 01:58:31
  • go-cache的基本使用场景示例解析

    2023-08-06 00:52:02
  • VB.NET调用MySQL存储过程并获得返回值的方法

    2024-01-12 16:03:45
  • python数据分析:关键字提取方式

    2022-03-08 09:23:37
  • ES6新语法Object.freeze和Object.seal基本使用

    2024-04-10 16:10:04
  • python 阿里云oss实现直传签名与回调验证的示例方法

    2021-12-08 00:30:18
  • Opencv实现倾斜图片转正示例

    2022-05-02 14:28:08
  • 如何利用Python给自己的头像加一个小国旗(小月饼)

    2023-09-15 20:47:31
  • 简单了解Javscript中兄弟ifream的方法调用

    2024-04-22 22:29:30
  • 成为一个顶级设计师的第一准则

    2008-04-18 10:29:00
  • Python实现清理微信僵尸粉功能示例【基于itchat模块】

    2021-10-29 20:45:46
  • Python访问纯真IP数据库脚本分享

    2024-01-25 12:59:50
  • asp之家 网络编程 m.aspxhome.com