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 '\n';

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM