Python 2.7 批量转换 Excel (xls) 到 CSV 的脚本实现
本文介绍了一个基于Python 2.7编写的简单脚本,用于将指定目录下的所有xls文件批量转换为csv格式。脚本利用xlrd库读取Excel数据,处理非数字类型的编码问题,并通过csv模块写入新文件。代码包含路径配置、文件遍历及异常处理逻辑,适合需要快速进行格式批量转换的场景参考。
引言:这里分享一个早期编写的用于批量将xls文件转换为csv文件的Python简易脚本,该脚本基于Python 2.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文件方法的完整内容,希望能为读者提供有效的参考,也欢迎大家继续支持本站获取更多技术分享。
本站声明
本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。













