Python批处理(一)提取txt中数据存入excel

这篇具有很好参考价值的文章主要介绍了Python批处理(一)提取txt中数据存入excel。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Python批处理(一)提取txt中数据存入excel

问题描述

现从冠层分析软件中保存了叶面积指数分析的结果,然而软件保存格式为txt,且在不同的文件夹中,每个文件夹的txt文件数量不固定,但是txt文件格式固定。现需要批量处理这些txt文件,获取头三行的数据,并存入excel中。
Python批处理(一)提取txt中数据存入excel,python,python,excel
Python批处理(一)提取txt中数据存入excel,python,python,excel
Python批处理(一)提取txt中数据存入excel,python,python,excel

源代码

def openreadtxt(file_name):
    data = []
    file = open(file_name, 'r')  # 打开文件
    file_data = file.readlines()  # 读取所有行
    for row in file_data:
        tmp_list = row.split(' ')  # 按‘,’切分每行的数据
        # tmp_list[-1] = tmp_list[-1].replace('\n',',') #去掉换行符
        data.append(tmp_list)  # 将每行数据插入data中
    return data

import os
import xlrd
# -*- coding: utf-8 -*-
import xlsxwriter as xw


def xw_toExcel(data, fileName):  # xlsxwriter库储存数据到excel
    workbook = xw.Workbook(fileName)  # 创建工作簿
    worksheet1 = workbook.add_worksheet("sheet1")  # 创建子表
    worksheet1.activate()  # 激活表
    title = ['序号', '叶面积指数', '平均叶倾角','天空散射辐射透过率']  # 设置表头
    worksheet1.write_row('A1', title)  # 从A1单元格开始写入表头
    i = 2  # 从第二行开始写入数据
    for j in range(len(data)):
        insertData = [data[j]["id"], data[j]["lai"], data[j]["angle"],data[j]["sky"]]
        row = 'A' + str(i)
        worksheet1.write_row(row, insertData)
        i += 1
    workbook.close()  # 关闭表


# "-------------数据用例-------------"


if __name__ == "__main__":
    DATA=[]
    list=['A1','A2','A3','A5','A8','A9','AA1','AA2','AA3','AA4','AA5','AA6','AA7','AA8','G1','L1','Q1','R1','R2','RR1','RR2','RR3','RR4','X2','X4','X5','XX1']
    for i in list:
        count = 0
        for root, dirs, files in os.walk("D:/Learn_Python/数据分析项目/08_叶面积指数批处理/fly/"+str(i)+'/'):
            for file in files:
                ext = os.path.splitext(file)[-1].lower()
                if ext == '.txt':
                    count = count + 1
        print(i,count)
        n=0
        while(n<count):
            print("正在读取"+i+"下第"+str(n)+"个文件")
            data = openreadtxt('D:/Learn_Python/数据分析项目/08_叶面积指数批处理/fly/'+i+'/20230905_00'+str(n)+'.txt')
            newdata={"id":n,"lai":data[2][4],"angle":data[4][4],"sky":data[6][10]}
            DATA.append(newdata)
            n=n+1
        DATA.append({"id":1,"lai":1,"angle":1,"sky":1})
    print(DATA)
    xw_toExcel(DATA, 'D:/Learn_Python/数据分析项目/08_叶面积指数批处理/output.xlsx')


代码注释

1、file = open(file_name, ‘r’)。使用open()函数打开名为"filename.txt"的文件,并以只读模式(“r”)打开。然后使用read()方法将文件内容读取并赋值给变量file。

2、file_data = file.readlines(),它会从文件中逐行读取数据,并将每一行存储为一个列表中的元素。这样就可以逐行处理文件中的内容了。
Python批处理(一)提取txt中数据存入excel,python,python,excel
3、 tmp_list = row.split(’ ')。将字符串 row 按空格进行分割,并将分割后的结果存入列表 tmp_list 中。每个空格部分的内容都会成为列表中的一个元素。列表与其中分割的元素如下:
Python批处理(一)提取txt中数据存入excel,python,python,excel

4、workbook = xw.Workbook(fileName) # 创建工作簿
worksheet1 = workbook.add_worksheet(“sheet1”) # 创建子表
worksheet1.activate() # 激活表。
首先,我们使用xw.Workbook()方法创建一个名为fileName的工作簿对象。然后,我们使用add_worksheet()方法在工作簿中创建一个名为"sheet1"的子表。最后,我们使用activate()方法激活该子表,使其成为活动表格,以激活后续操作。

5、worksheet1.write_row(row, insertData)。这是一个将数据写入Excel工作表中的代码片段。其中,worksheet1 是对应的工作表对象,row 是要写入的行数,insertData 是要插入的数据。

6、 for root, dirs, files in os.walk()。os.walk()是一个用于遍历目录树并获取目录中所有文件和子目录的函数。它返回一个生成器,可以用于迭代遍历目录结构。这里的root表示当前正在遍历的目录路径,dirs表示当前目录中的子目录列表,files表示当前目录中的文件列表。

7、ext = os.path.splitext(file)[-1].lower()。os.path.splitext(file):这个函数将文件名分割成文件名和扩展名的元组。例如,如果file是"example.txt",那么返回的元组将是(“example”, “.txt”)。

[-1]:这是Python中用于获取列表或元组中最后一个元素的索引。在这种情况下,它用于获取分割后元组中的扩展名(即.txt)。

.lower():这是一个字符串方法,用于将字符串转换为小写。这在这里使用是为了规范化扩展名,以便后续处理不受大小写的影响。

最终,ext变量将包含文件的小写扩展名。

8、newdata={“id”:n,“lai”:data[2][4],“angle”:data[4][4],“sky”:data[6][10]}
DATA.append(newdata)
每次创建一个字典
Python批处理(一)提取txt中数据存入excel,python,python,excel
然后在列表中将每次创建的字典添加进去。
Python批处理(一)提取txt中数据存入excel,python,python,excel
最后将字典写入excel中

运行结果

Python批处理(一)提取txt中数据存入excel,python,python,excel文章来源地址https://www.toymoban.com/news/detail-704998.html

到了这里,关于Python批处理(一)提取txt中数据存入excel的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • whois人员信息python批处理读入与文本输出

    使用pytho读取一个ip列表文本,批量获取whois输出并写入到一个文本 !

    2024年02月08日
    浏览(53)
  • 从批处理到实时处理:Flink的数据处理变革和API扩展

    作者:禅与计算机程序设计艺术 Apache Flink是一个开源的分布式流处理平台,它由Apache Software Foundation(ASF)开发并于2015年9月发布。Apache Flink支持多种编程语言如Java、Scala、Python等进行编写,并且提供丰富的API接口方便用户进行数据处理。Flink的系统架构主要包括:JobManager、

    2024年02月12日
    浏览(42)
  • Python做批处理,给安卓设备安装应用和传输图片

    场景:几台新安卓平板过来了,需要安4个应用并复制4张图片。手工操作其实也未尝不可,但是能自动化起来,岂不是美哉。 python调用系统命令,我选用了os.system,最简单粗暴,也能有回显,就它了! 给安卓装应用自然离不开adb,这个需要提前准备好。 安装命令是adb instal

    2024年02月09日
    浏览(50)
  • 大数据计算分析技术:批处理、流计算、OLAP引擎

    目录 一、批处理的基石:MapReduce 1.工作流程 2.实例分析 二、流计算的代表:storm、spark streaming和flink 1.storm 2.spark streaming 3.flink  4.storm、spark streaming和flink 对比 三、OLAP引擎:Hive、Impala、Presto 1.Hive 1)Hive系统架构 2)Hive和传统数据库的区别 四 离线数据、批量计算、实时计算

    2024年02月16日
    浏览(45)
  • 数据批处理加速(GC收集器->安全点->线程池)

           有个数据镜像系统每天0点会进行批量处理生成日表,随着数据量不断增大,处理时间从之前的一个小时,目前每天需要接近两小时,一旦继续延迟会影响BI、库存等很多任务。领导让博主进行优化提速。         博主从GC收集器、可数循环的安全点放置、CPU与线程搭

    2024年02月09日
    浏览(44)
  • mysql数据备份批处理文件正式版已测试通过

    中心思想找到源文件(.ibd)备份到目的地成.sql文件 1.比如备份 test1和test2 表 2.加载部分表 后续更新 说明: 备份的文件并非一定要求后缀名为.sql,例如后缀名为.txt的文件也是可以的。 示范

    2024年02月11日
    浏览(64)
  • 大数据-Spark批处理实用广播Broadcast构建一个全局缓存Cache

    在Spark中,broadcast是一种优化技术,它可以将一个只读变量缓存到每个节点上,以便在执行任务时使用。这样可以避免在每个任务中重复传输数据。

    2024年02月15日
    浏览(50)
  • 【已解决】‘python‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

    有时候,在 cmd 中输入 python,会提醒 ‘python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 我将python安装在E盘之后,输入python,显示如下问题 这个问题本质其实就是,windows的cmd并不能识别python这个符号(即无法识别这个符号是一个可执行程序),因为windows这

    2024年02月11日
    浏览(75)
  • Windows10批处理命令行设置环境变量笔记,无需重新安装python与chrome

    近期,工作中经常安装、部署python生产、开发环境,比较麻烦,也没有心情去优化。突然,我的电脑崩溃了,在重新安装电脑的过程中,保留了原来的安装软件(有的没有放在系统盘中),就通过修改环境配置变量,直接使用早期安装软件,很好用。 首先,整理环境变量设置

    2024年02月11日
    浏览(53)
  • 【解决方案】‘python‘ 不是内部或外部命令,也不是可运行的程序或批处理文件

    有时候,在 cmd 中输入 python,会提醒 ‘python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。 我将python安装在E盘之后,输入python,显示如下问题 这个问题本质其实就是,windows的cmd并不能识别python这个符号(即无法识别这个符号是一个可执行程序),因为windows这

    2024年02月14日
    浏览(61)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包