将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 osimport sysimport 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 osimport sysimport 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/bashpth="/usr/local/data_dir/data_txt/" # 将/usr/local/data_dir/data_txt/ 目录下的所有的文件循环mkdir /usr/local/data_dir/data_xls/ -pfor 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.htmlhttp://blog.csdn.net/gumengkai/article/details/52800257https://zhidao.baidu.com/question/565518792570332764.htmlhttps://www.cnblogs.com/ontheway703/p/5264517.html