批量txt数据转换为excel

日常工作中经常会遇到大量的数据处理,尤其是大量的txt文件需要转换为excel,只能一个个粘贴复制,有了如下代码,分分钟即可完成繁琐的数据处理工作。

环境准备

需要python和python里的pandas库和openpyxl库,如果没有可以到管网下载python,并利用pip install + 库名进行pandas库和openpyxl库的安装。

代码

首先,我们需要读取文件中txt文件的名称。导入os库进行名称读取。

import os
import pandas
def file_name(file_dir):for root,dirs,files in os.walk(file_dir):dirs_name = filesreturn dirs_name
fils = list(file_name(r'E:\python idea\EVP'))

利用os库,我们可以拿出file_dir目录下的root(路径)、dirs(文件夹名称)、files(文件名)。本次我们只需要文件名,所以return文件名。利用file_name函数拿出文件名后,用list函数把它变成列表,便于循环。
然后,我们需要利用pandas拿到txt中的数据。先建立一个空的DataFrame用于储存数据。

data_new = pd.DataFrame()
for i in fils:data = pd.read_table(r'E:\python idea\EVP\\' + i,header=None,encoding='gbk',delimiter='\s+',index_col=0)data_new = pd.concat((data_new,data))

然后循环fils,拿出文件名,利用pandas中的read_table函数拿出txt数据。read_table函数第一个参数为文件所在位置,header参数为有无列标签,encoding为编码方式,delimiter='\s+'这个参数可以去掉所有的空格,试用于很多空格的txt,index_col=0这个参数可以把第一列变为行索引。最后利用concat函数拼接即可完成数据读取。
最后利用pandas中的to_excel进行数据的输出,完整代码如下:

import pandas as pd
import osdef file_name(file_dir):for root,dirs,files in os.walk(file_dir):dirs_name = filesreturn dirs_name
fils = list(file_name(r'E:\python idea\EVP'))
# fils1 = fils[:400]
# fils2 = fils[400:]
# print(fils1)data_new = pd.DataFrame()
for i in fils:data = pd.read_table(r'E:\python idea\EVP\\' + i,header=None,encoding='gbk',delimiter='\s+',index_col=0)data_new = pd.concat((data_new,data))
# print(data_new[0:10000000])
data_new[0:10000000].to_excel(r'E:\python idea\EVP\evp.xlsx',sheet_name="sheet1")
data_new[10000000:].to_excel(r'E:\python idea\EVP\evp.xlsx',sheet_name="sheet2")

由于数据量太大还进行了分块转换。

新增了一个封装更好的代码,txt文件没有列名,自己指定就好:

import pandas as pd
import os
def Search_File(dirname,suffix):'''This function can search all files with the specified suffix in this dir.:param dirname: string, the path need to be searched:param suffix: string, the specified suffix need to be seached:return:filter_list: list, the path list need to be searched.'''filter = [suffix]  # 设置过滤后的文件类型 当然可以设置多个类型filter_list = []for maindir, subdir, file_name_list in os.walk(dirname):#print(maindir) #当前主目录for filename in file_name_list:apath = os.path.join(maindir, filename)#合并成一个完整路径portion = os.path.splitext(apath)ext = portion[1]  # 获取文件后缀 [0]获取的是除了文件名以外的内容if ext in filter:newname = portion[0] + suffixfilter_list.append((newname,portion[0].split("\\")[-1]))# print(filter_list)return filter_listdef acc_data_to_csv(file_name_list):'''file_name_list:the result of Search_File function.return:data_sum , DateFrame.'''def txt_to_csv(file_name_list,ouput_path,sep='\s+',name=[]):''':param file_name_list: the result of Search_File function:param ouput_path: str,csv:param sep: :param name: the label of row:return: '''if len(name) == 0:data = [pd.read_table(dir,sep=sep) for dir, path in file_name_list]else:data = [pd.read_table(dir,names=name,sep=sep) for dir,path in file_name_list]result = pd.concat(data,axis=0)print(result)result.to_csv(ouput_path)
# csv储存量较大
file_list = Search_File(r"E:\python idea\EVP",".txt")
data = acc_data_to_csv(file_list)
data1 = data.iloc[:int(int(data.shape[0])/3),:]
data2 = data.iloc[int(int(data.shape[0])/3):int(int(data.shape[0])/3)*2,:]
data3 = data.iloc[int(int(data.shape[0])/3)*2:,:]
data1.to_excel(r"evp_day1.xlsx",sheet_name="Sheet1")
data2.to_excel(r"evp_day2.xlsx",sheet_name="Sheet1")
data3.to_excel(r"evp_day3.xlsx",sheet_name="Sheet1")

批量txt数据转换为excel相关推荐

  1. html中文本信息导出表格中,大量word填写的表格资料,如何批量提取数据到Excel表里?...

    大量word填写的表格资料,要批量提取数据到Excel表里,一页对应一行,首先看一下这个word本身是什么来源的,大致可以分以下2种情况来处理. 一.网上直接生成的带html标记的word文件 如一些 ...

  2. Python将txt数据转换为xls(表格)文件,方便后面做数据分析

    Python我们做数据分析的时候有时候获得数据是txt文件,这时候我们该怎么办呢?下面我给大家教一下这时候应该怎么做? 1.读取txt数据查看:我们就可以看到使用逗号隔开的数据. "&quo ...

  3. 7.3 MASS批量修改数据(Excel文件上传数据)

    7.3 MASS批量修改数据(Excel文件上传数据) 步骤1:输入事务码MASS进入 1处,输入需要修改的对象类型(参见对象类型清单) 2处,点击"执行"按钮 步骤2:选择需要修 ...

  4. java txt数据导入excel,java导入excle文件《如何用java 将txt数据导入excel》

    如何用java 将txt数据导入excel 代码如下: import java.io.*; import jxl.*; import jxl.write.*; public class CreateX ...

  5. Python将txt数据写入excel

    按属性匹配想要的数据 每个txt文件在Excel中为一行 # -*- coding: utf-8 -*- import os import openpyxl from openpyxl import ...

  6. python提取txt数据到excel

    中 如果你想把txt文件中的数据导入到excel中,可以使用python的pandas库.首先,你需要安装pandas,然后用以下代码读取txt文件: import pandas as pddata ...

  7. 10000条txt数据转为excel表格数据

    从网上查资料知道Java有2种进行excel数据写入,一种jxl,另一种poi. jxl架包下载地址带demo:https://download.csdn.net/download/wangguido ...

  8. c#使用NPOI批量导出数据到excel表格里

    背景 我之前是做的Java开发的相关工作,c#开发还是第一次. 公司有这个需求,只好研究一下了. 我接手的是别人开发过两个报表的小玩意,万事开头难,刚开始为了搞清楚这些代码的意思走了不少弯路,下面说说 ...

  9. php批量导出excel表格,PHP批量导出数据为excel表格

    之前用插件phoexcel写过批量导入数据,现在用到了批量导出,就记录一下,这次批量导出没用插件,是写出一个表格,直接输出 //$teacherList 是从数据库查出来的二维数组 $execlnam ...

  10. java txt数据导入excel,java easyreport 导入excel、 txt 数据txt按字节导入(七)

    有时候导入txt文件不一定是采用分隔符方式导入,而是采用按字节.字符长度导入,比如银联对账文件. 导入txt数据 姓名 年龄科目分数 陈寻  12语文67 王老五12语文80 柯景腾13语文78 沈佳 ...

最新文章

  1. 每日一皮:努力寻找Bug的程序员
  2. anaconda怎么运行python程序-致Python初学者 Anaconda入门使用指南完整版
  3. python bootstrap-fileinput示例_bootstrap fileinput完整实例分享
  4. 删除已有的 HTML 元素
  5. sql server 2005 T-SQL ALTER ENDPOINT (Transact-SQL)
  6. 介绍Pro*c编程的经验
  7. JavaScript的对象
  8. Leetcode 456. 132 Pattern
  9. 比较abc大小的java_比较abc大小java
  10. linux-进程杀死的操作
  11. 京东云无线宝AX6600新品发布 预售价799元
  12. 环形链表得golang实现
  13. 【转】每天一个linux命令(28):tar命令
  14. nginx的学习笔记,第四记。
  15. 「图像处理」C#+AForge.Net+DlibDotNet实现人脸识别
  16. RayTrace1:如何实现Whitted全局光照模型?
  17. 业务流程图的绘制流程分享(一)
  18. 软件测试——透过表象看本质
  19. 应届毕业生怎么快速找到高薪工作?
  20. Android系统移植与调试之-------build.prop文件详细赏析

热门文章

  1. Codevs No.1553 互斥的数
  2. Android-两种方式实现走马灯效果
  3. mysql死锁——mysql之四
  4. printf 格式化最常用用法
  5. 防范项目中人员频繁变动的风险
  6. 还怕没女朋友吗?用python做个表白吧
  7. python编译 pyd 工具_python如何编译py文件生成pyc、pyo、pyd以及如何和C语言结合使用...
  8. Android修改读写速度,Android 通过adb测试机器读写速度(rk)
  9. Window10下让自己开发的自启动程序支持拉起一个图形化软件
  10. NavicatPremium-Mac-无法打开问题