• python 将文本txt 转换 excel(xls)


    现在有很多工具可以将mysql数据库中数据直接dump为excel表格模式,例如,navicat,sqlyog等,但是个人认为最好用是navicat,但是navicat需要收费。

    通过select into outfile 可将数据导出为.txt格式,然后再通过python脚本将.txt格式转换成xls格式。

    MySQL导出文本语句:

    SELECT * FROM table_name INTO OUTFILE "/tmp/tmp_xls.txt" FIELDS TERMINATED BY ',' OPTIONALLY ENCLOSED BY '"' LINES TERMINATED BY '
    ';

    Python封装脚本:

    #!/bin/env python
    # -*- encoding: utf-8 -*-
    import datetime
    import time
    import os
    import sys
    import xlwt #需要的模块,安装:pip install xlwt
    
    def txt2xls(filename,xlsname):  #文本转换成xls的函数,filename 表示一个要被转换的txt文本,xlsname 表示转换后的文件名
        print 'converting xls ... '
        f = open(filename)   #打开txt文本进行读取
        x = 0                #在excel开始写的位置(y)
        y = 0                #在excel开始写的位置(x)
        xls=xlwt.Workbook()
        sheet = xls.add_sheet('sheet1',cell_overwrite_ok=True) #生成excel的方法,声明excel
        while True:  #循环,读取文本里面的所有内容
            line = f.readline() #一行一行读取
            if not line:  #如果没有内容,则退出循环
                break
            for i in line.split(','):#读取出相应的内容写到x,即从数据库导出时的分隔符
                item=i.strip().decode('utf8')
                sheet.write(x,y,item)
                y += 1 #另起一列
            x += 1 #另起一行
            y = 0  #初始成第一列
        f.close()
        xls.save(xlsname+'.xls') #保存
    
    if __name__ == "__main__":
        filename = sys.argv[1]
        xlsname  = sys.argv[2]
        txt2xls(filename,xlsname)

    执行命令:

    [root@hankyoon ]# python python_xls.py tmp_xls.txt abc

     [root@hankyoon ]# ls abc.xls
      abc.xls

  • 相关阅读:
    性能问题分析-OOM内存溢出
    JVM介绍及参数配置
    性能问题分析-CPU偏高
    性能测试常见术语浅析
    性能测试中TPS上不去的几种原因浅析
    MyBatis拦截器:给参数对象属性赋值
    springboot读取配置文件的顺序
    ElasticSearch中文分词
    springboot和ELK搭建配置详情
    java命令行介绍
  • 原文地址:https://www.cnblogs.com/hankyoon/p/13606783.html
Copyright © 2020-2023  润新知