將txt文本轉換為excel格式,中間使用的列分割為 tab 鍵
一、使用xlwt模塊
注:Excel 2003 一個工作表行數限制65536,列數限制256
需要模塊:xlwt
模塊安裝:xlwt
[root@baolin shell]#sudo pip install xlwt
腳本內容
腳本內容:
[root@baolin shell]# cat t2e.py
#!/bin/env python
# -*- encoding: utf-8 -*-
#-------------------------------------------------------------------------------
# Purpose: txt轉換成Excel
# Created: 2017-11-03
#-------------------------------------------------------------------------------
import os
import sys
import 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('\t'):#讀取出相應的內容寫到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)
運行方式:
# 后綴xls會自動添加
[root@baolin shell]#python t2e.py txt文本 xls名稱
二、使用xlsxwriter模塊
注:當行數大於65535時,就需要使用Excel 2007 一個工作表行數限制1048576,列數限制16384
需要模塊:xlsxwriter
模塊安裝:xlsxwriter
[root@baolin shell]#sudo pip install xlsxwriter
腳本內容
腳本內容:
#!/bin/env python
# -*- encoding: utf-8 -*-
import os
import sys
import xlsxwriter # 當文檔內容大於 65535 時使用 xlsxwriter 模塊
def txt2xls(filename,xlsname): #文本轉換成xls的函數,filename 表示一個要被轉換的txt文本,xlsname 表示轉換后的文件名
print('converting xls ... ')
f = open(filename) #打開txt文本進行讀取
x = 0 #在excel開始寫的位置(y)
y = 0 #在excel開始寫的位置(x)
xls=xlsxwriter.Workbook(xlsname+'.xlsx') # 創建xlsx文件
sheet = xls.add_worksheet() # 創建一個新的表單,默認名稱為 “sheet1”,輸入字符參數可指定名稱
while True: #循環,讀取文本里面的所有內容
line = f.readline() #一行一行讀取
if not line: #如果沒有內容,則退出循環
break
for i in line.split('\t'):#讀取出相應的內容寫到x
item=i.strip().decode('utf8')
sheet.write(x,y,item)
y += 1 #另起一列
x += 1 #另起一行
y = 0 #初始成第一列
f.close()
xls.close()
if __name__ == "__main__":
filename = sys.argv[1]
xlsname = sys.argv[2]
txt2xls(filename,xlsname)
運行方式:
# 后綴xls會自動添加
[root@baolin shell]#python t2e.py txt文本 xls名稱
將一個目錄下的所有文件都轉換為excel文件
[root@baolin shell]#cat batch_to_exl.sh
#!/bin/bash
pth="/usr/local/data_dir/data_txt/" # 將/usr/local/data_dir/data_txt/ 目錄下的所有的文件循環
mkdir /usr/local/data_dir/data_xls/ -p
for n in `ls $pth`
do
# 執行腳本拼接的路徑 執行腳本,將結果放在 其他目錄(需要創建)
python /home/baolin/shell/t2e.py ${pth}${n} /usr/local/data_dir/data_xls/${n}
done
內容參考:
http://www.cnblogs.com/zhoujinyi/archive/2013/05/07/3064785.html
http://blog.csdn.net/gumengkai/article/details/52800257
https://zhidao.baidu.com/question/565518792570332764.html
https://www.cnblogs.com/ontheway703/p/5264517.html
