Python方法的xls与csv转换源码,pythonxlscsv源码,此贴python源码是关


此贴python源码是关于将指定位置中的xls转化成为csv,同时完成输出到指定位置的操作示例。Python方法xls与csv转换源码,需要用到os、sys、xlrd模块方法。

输入指令findxls_Command.py文件路径: findxls_Command.py 读取转换.xls目录输出目录。将自动完成该目录及该目录子目录的转化,并输出到 输出目录\csv\相应目录

Python方法的xls与csv转换源码:

# -*- coding: utf-8 -*-import os,sysimport xlrddefault_encoding = 'gbk''''    解决中文路径名无法转换问题'''if sys.getdefaultencoding() != default_encoding:    reload(sys)    sys.setdefaultencoding(default_encoding)    def search(base):    pattern = '.xls'    fileresult = []    cur_list = os.listdir(base)    for item in cur_list:        full_path = os.path.join(base, item)        if os.path.isdir(full_path):                        fileresult += search(full_path)        if os.path:            if full_path.endswith(pattern):                fileresult.append(full_path)    return fileresult                    def run(dir1,dir2):    root = dir1    dirout = dir2 + '\\csv'    if os.path.exists(dirout) == False:        os.makedirs(dirout)    else:        pass    base = root    for result in search(base):        print 'Input from:%s'%result        filename = os.path.basename(result) #获取文件名        dirname = os.path.dirname(result)#获取子目录路径        dir1_1 = os.path.split(dir1)    #分离输入文件目录        dirname1 = os.path.split(dirname) #分离子目录名称        outputdir = dirname1[0].split(dir1_1[0])#获取输出文件路径        newdir = dirout + os.sep + outputdir[1] + os.sep + dirname1[1] + os.sep #新路径名称        print 'Output to:%s'%newdir        if os.path.exists(newdir) == False:            os.makedirs(newdir)        else:            pass        a = xlrd.open_workbook(result)        for i in a.sheets():            output = open(newdir + filename.decode('gbk')+"_"+ i.name + ".csv",'a')            for r in range(i.nrows):                linevalue = []                for l in range(i.ncols):                    if i.cell(r,l).ctype == 0:                        linevalue.append(('%*s'%(4,' ')))                       else:                        b = i.cell(r,l).value                        if type(b) == type(4.0):                            b= str(b)                        linevalue.append(b)                d = ','.join(linevalue).encode('gbk')                output.write(d+'\n')             output.write(os.linesep)        output.close()if __name__ == '__main__':    dirs = sys.argv    if len(dirs)!=3:        print '请输入正确目录'.decode('utf-8')        sys.exit()    run(dirs[1],dirs[2])

编橙之家文章,

评论关闭