python读取txt文件批量导出excle文件

python读取txt文件批量导出excle文件


前言

本文是将txt文件批量导出为excel文件的python脚本;
txt文件保存于一个文件下与txt文件同名的文件夹中;
脚本的作用是将所有的txt文件读取后导出到与该txt文件同名的sheet表中。


一、pandas是什么?

pandas 是基于NumPy 的一种工具,该工具是为了解决数据分析任务而创建的。

二、使用步骤

1.引入库

from openpyxl import Workbook
from pathlib import Path
import pandas as pd
from openpyxl import load_workbook
from openpyxl.utils import get_column_letter

2.将txt转换成excel

def read_txt(Filelist):
    lst1 = []
    for File in Filelist:
        lst1.append(File.name)
        workbook = Workbook()
        workbook.save('iptables.xlsx')

        for i in range(len(lst1)):
            workbook.create_sheet(title=lst1[i])

        workbook.save('iptables.xlsx')


    writer = pd.ExcelWriter('iptables.xlsx')
    n = 0
    while n < len(lst1):
        txt_name = lst1[n]
        for sheet in workbook:
            if txt_name == sheet.title:
                with open(Filelist[n], 'r+') as data:
                    layerdata = data.readlines()
                    df = pd.DataFrame((x.split(' '))for x in layerdata)
                    df.to_excel(writer, sheet_name=sheet.title)
                n += 1
            else:
                continue

    writer.save()

3.设置列宽

def reset_col(filename):
    wb=load_workbook(filename)
    for sheet in wb.sheetnames:
        ws=wb[sheet]
        df=pd.read_excel(filename,sheet).fillna('-')
        df.loc[len(df)]=list(df.columns)
        for col in df.columns:
            index=list(df.columns).index(col)
            letter=get_column_letter(index+1)
            collen=df[col].apply(lambda x:len(str(x).encode())).max()
            ws.column_dimensions[letter].width=collen*1.2+4

    wb.save(filename)

4.main

if __name__ == '__main__':
    p = Path("D://pycharm/txt")
    Filelist = list(p.glob("**/*.txt"))
    read_txt(Filelist)
    reset_col('iptables.xlsx')
  • 1
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 可以使用Python编写脚本来批量txt文件转换成Excel文件。具体实现方法可以使用Python内置的csv模块来读取txt文件,然后使用pandas模块将数据转换成Excel格式并保存。需要注意的是,不同的txt文件可能有不同的分隔符和编码方式,需要根据实际情况进行调整。 ### 回答2: Python是一种高级编程语言,广泛应用于数据分析、科学计算、人工智能等领域,因其熟悉的语法、易于学习和强大的生态系统而备受青睐。在实际工作中,我们常常需要将文本文件转换成Excel表格,以便更好地进行数据分析和可视化。下面将介绍如何使用Python批量TXT文件转换成Excel文件。 1. 准备工作 首先,我们需要安装Python的相关库,包括pandas和openpyxl。可以使用pip或conda安装: ``` pip install pandas openpyxl ``` 2. 读取TXT文件 使用pandas库中的read_csv函数读取TXT文件,对于分隔符不是逗号的情况,可以指定分隔符。例如,假设我们要读取一个以制表符分隔的TXT文件: ``` import pandas as pd df = pd.read_csv('example.txt', sep='\t') ``` 其中,example.txt文件名,\t是指制表符,df是pandas DataFrame对象,用于保存TXT文件中的数据,可以进行各种数据处理、分析和可视化。 3. 写入Excel文件 使用openpyxl库中的Workbook和Worksheet类创建Excel文件和工作表,使用pandas库中的to_excel函数将DataFrame对象写入Excel文件。例如,假设我们要将数据写入一个名为example.xlsx的Excel文件: ``` from openpyxl import Workbook from openpyxl.utils.dataframe import dataframe_to_rows wb = Workbook() ws = wb.active for r in dataframe_to_rows(df, index=False, header=True): ws.append(r) wb.save('example.xlsx') ``` 其中,Workbook是创建Excel文件的类,active是默认工作表,dataframe_to_rows将DataFrame对象转换成可迭代的行对象,然后将它们逐行添加到Excel工作表中。我们还可以指定是否包含索引和表头,以及对行进行筛选、排序、分组等操作。 4. 批量转换 我们可以使用Python内置的os库遍历文件夹中的所有TXT文件,并对它们进行批量转换,将结果保存到一个目录中。例如,假设所有的TXT文件都在同一个目录下,我们可以这样处理: ``` import os indir = '/path/to/indir' outdir = '/path/to/outdir' for root, dirs, files in os.walk(indir): for file in files: if file.endswith('.txt'): df = pd.read_csv(os.path.join(root, file), sep='\t') wb = Workbook() ws = wb.active for r in dataframe_to_rows(df, index=False, header=True): ws.append(r) wb.save(os.path.join(outdir, file.replace('.txt', '.xlsx'))) ``` 其中,indir是包含TXT文件的目录路径,outdir是保存Excel文件的目录路径。os.walk遍历目录树,files是当前目录下的文件列表,如果文件以.txt结尾,则读取数据,将其转换成Excel格式,并将结果保存到目标目录中,文件名以.xlsx结尾。 以上是使用Python批量TXT文件转换成Excel文件的基本方法。实际应用中,我们还需要考虑文件编码、缺失值、异常值、数据类型转换等问题,以确保数据质量和可靠性。 ### 回答3: Python 是一种简单易学、功能强大的编程语言,它可以用来编写各种各样的程序,包括批量txt 文本文件转换成 Excel 表格。要完成这项任务,我们可以借助 Python 的第三方库,例如 PandasPandas 是一个数据处理库,它提供了丰富的数据结构和数据分析工具。在 Python 中使用 Pandastxt 转换成 Excel 非常简单,只需要按照以下步骤操作: 第一步:安装 Pandas 在命令行中输入以下命令安装 Pandas: pip install pandas 第二步:导入 PandasPython 脚本中导入 Pandas: import pandas as pd 第三步:读取 txt 文件 使用 Pandas 中的 read_csv 函数读取 txt 文本文件,并将其存储为 DataFrame 对象: df = pd.read_csv('file.txt', sep='\t') 其中,file.txt 是要读取txt 文件名,sep='\t' 表示文件中的字段是由 Tab 键分割的。 第四步:将 DataFrame 对象转换成 Excel 使用 Pandas 中的 to_excel 函数将 DataFrame 对象转换成 Excel: df.to_excel('file.xlsx', index=False) 其中,file.xlsx 是要写入的 Excel 文件名,index=False 表示不写入索引列。 最后,将以上代码整合到一个 Python 脚本中,就可以批量txt 文件转换成 Excel 了。如果要批量操作,只需要在脚本中添加循环,对每一个 txt 文件进行转换即可。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值