最近因工作原因需要批量转换txt文档,手工一个个修改太耗时,于是写了个脚本,需要用的自己拿。
脚本流程基本分为3个部分。
1,遍历目录
2,找到目录下的txt文档
3,转换文档并在txt文档存储目录下生成转换后的Excel表。
转换txt文档时需要修改文档内使用得分隔符。
cons = line.split('\t')#使用分隔符判断,如果使用其他分隔符需要修改。
使用的时候只需要吧dir变量目录换成需要转换的目录就可以了,脚本会遍历目录下的所有文件。
dir = r'C:\Users\admin\Desktop' # 目录地址
完整脚本如下:
#!/bin/env python
# -*- encoding: utf-8 -*-
#-------------------------------------------------------------------------------
# Purpose: txt转换成Excel
# Author: soso
# Created: 2022-10-31
# update: ****-**-**
#description:遍历目录下txt文档,并使用分隔符将文本转换为Excel文件。
#-------------------------------------------------------------------------------
import xlwt
import os
# 定义遍历目录函数
def list_all_files(rootdir):
_files = []
# 列出文件夹下所有的目录与文件
list = os.listdir(rootdir)
for i in range(0, len(list)):
# 构造路径
path = os.path.join(rootdir, list[i])
# 判断路径是否为文件目录或者文件
# 如果是目录则继续递归
if os.path.isdir(path):
_files.extend(list_all_files(path))
if os.path.isfile(path):
_files.append(path)
return _files
dir = r'C:\Users\admin\Desktop' # 目录地址
files =list_all_files(dir)
#开始转换
for file in files:
(name,ext) =os.path.splitext(file)
if ext =='.txt':
print ("开始转换"+file)
txtname = file
excelname = name+'.xlsx'
fopen = open(txtname, 'r',encoding='utf-8')
lines = fopen.readlines()
filexls = xlwt.Workbook(encoding='utf-8', style_compression=0)
# 新建一个sheet
sheet = filexls.add_sheet('data')
i = 0
for line in lines:
line = line.strip('\n')
cons = line.split('\t')#使用分隔符判断,如果使用其他分隔符需要修改。
j=0
for con in cons:
sheet.write(i, j, con)
j=j+1
i = i + 1
filexls.save(excelname)
print("转换完成,目标路径:"+excelname)
脚本比较简单,读取txt文件是一次读取完成的,如果是大文件可以自己修改逐行读取。