Python读取指定的TXT文本文件并从中提取指定数据的方法

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

  本文介绍基于Python语言,遍历文件夹并从中找到文件名称符合我们需求的多个.txt格式文本文件,并从上述每一个文本文件中,找到我们需要的指定数据,最后得到所有文本文件中我们需要的数据的合集的方法。

  首先,我们来明确一下本文的具体需求。现有一个文件夹,其中含有大量的.txt格式文本文件,如下图所示;同时,这些文本文件中,文件名中含有Point字段的,都是我们需要的文件,我们接下来的操作都是对这些我们需要的文件而言的;而不含有Point这个字段的,那么我们就不需要。

python 提取文本指定内容,Python学习与应用,数据统计与分析,计算机高效操作,Python,TXT,文本文件,数据提取,文件遍历,读取txt文件,文本文件遍历

  随后,在每一个我们需要的文本文件(也就是文件名中含有Point字段的文件)中,都具有着如下图所示的数据格式。我们希望,基于第1列(红色框内所示的列)数据(这一列数据表示波长),找到几个指定波长数据所对应的行,并将这些行所对应的后5列数据都保存下来。

python 提取文本指定内容,Python学习与应用,数据统计与分析,计算机高效操作,Python,TXT,文本文件,数据提取,文件遍历,读取txt文件,文本文件遍历

  此外,前面也提到,文件名中含有Point字段的文本文件是有多个的;因此希望将所有文本文件中,符合要求的数据行都保存在一个变量,且保存的时候也将文件名称保存下来,从而知道保存的每一行数据,具体是来自于哪一个文件。

  知道了需求,我们就可以开始代码的书写。其中,本文用到的具体代码如下所示。

# -*- coding: utf-8 -*-
"""
Created on Fri Jul  7 23:39:43 2023

@author: fkxxgis
"""

import os
import pandas as pd

original_file_folder = "E:/03_Experiment/202306HuaiLai/HuaiLai_20230627_SpectralCurve"
result_file_path = "E:/03_Experiment/202306HuaiLai/HuaiLai_20230627_SpectralCurve/Result.csv"
target_wavelength = [490, 561, 665, 702, 863]

result_all_df = pd.DataFrame()

for file in os.listdir(original_file_folder):
    if file.endswith(".txt") and file[3] == "P":
        file_path = os.path.join(original_file_folder, file)
        df = pd.read_csv(file_path, delimiter = "\t")
        select_df = df[df["Wavelength"].isin(target_wavelength)]
        select_df.insert(0, "file_name", file)
        
        data_append = select_df.iloc[1 : , 2 : ]
        result_df = pd.DataFrame()
        result_df = pd.concat([select_df.iloc[[0]].reset_index(drop = True), pd.DataFrame(data_append.values.flatten()).transpose()], axis = 1)
        result_df.columns = range(result_df.shape[1])
        result_all_df = pd.concat([result_all_df, result_df], axis = 0, ignore_index = True)

  上述代码具体的含义如下所示。

  首先,我们导入了需要使用的库——os库用于文件操作,而pandas库则用于数据处理;接下来,我们定义了原始文件夹路径 original_file_folder 和结果文件路径 result_file_path。然后,我们创建一个空的DataFrame对象result_all_df,用于存储所有处理后的结果。

  再接下来,通过使用os.listdir()函数,我们遍历指定文件夹中的文件。我们通过条件过滤,只选择以.txt结尾且文件名的第四个字母是P的文件——这些文件就是我们需要的文件。随后,对于每个满足条件的文件,我们构建了文件的完整路径file_path,并使用pd.read_csv()函数读取文件的内容。在这里,我们使用制表符作为分隔符,并将数据存储在DataFrame对象df中。

  然后,我们根据给定的目标波长列表target_wavelength,使用条件筛选出包含目标波长的数据行,并将文件名插入到选定的DataFrame中,即在第一列插入名为file_name的列——这一列用于保存我们的文件名。

  接下来,在我们已经提取出来的数据中,从第二行开始,提取每一行从第三列到最后一列的数据,将其展平为一维数组,从而方便接下来将其放在原本第一行的后面(右侧)。然后,我们使用pd.DataFrame()函数将展平的数组转换为DataFrame对象;紧接着,我们使用pd.concat()函数将原本的第一行数据,和展平后的数据按列合并(也就是放在了第一行的右侧),并将结果存储在result_df中。

  最后,我们将每个文件的处理结果按行合并到result_all_df中,通过使用pd.concat()函数,指定axis=0表示按行合并。由于我这里的需求是,只要保证文本文件中的数据被提取到一个变量中就够了,所以没有将结果保存为一个独立的文件。如果需要保存为独立的.csv格式文件,大家可以参考文章Python读取Excel文件并复制指定的数据行(https://blog.csdn.net/zhebushibiaoshifu/article/details/131615610)。

  运行上述代码,即可看到保存我们提取出来的数据的结果的变量result_all_df的具体情况如下图所示。可以看到,已经保存了我们提取出来的具体数据,以及数据具体来源文件的文件名称;并且从一个文本文件中提取出来的数据,都是保存在一行中,方便我们后期的进一步处理。

python 提取文本指定内容,Python学习与应用,数据统计与分析,计算机高效操作,Python,TXT,文本文件,数据提取,文件遍历,读取txt文件,文本文件遍历

  至此,大功告成。

欢迎关注:疯狂学习GIS文章来源地址https://www.toymoban.com/news/detail-633019.html

到了这里,关于Python读取指定的TXT文本文件并从中提取指定数据的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python读取txt文本数据,写进excel中

    因为项目需要,需要统计训练的loss和acc,写进excel中,用手统计太累了。 方法:读取文档后,采用split分割出数据,然后用列表保存,再将列表内容写进excel中。 txt文本内容如下所示: 直接上代码,代码的value_title 需要自己手动更改:  最后生成的结果,很完美。  

    2024年01月22日
    浏览(37)
  • Python从txt文件中提取特定数据

    本段代码用于,想要从一段txt文件中只提取目标数据的情况。 函数参数解释: txt_path 文件路径 epoch 这份文本文件中要提取出的数据个数,默认100 target 目标数据的前缀 target_data_len 目标数据的长度,默认为5 返回值,列表数据 txt文档内容: 使用: 输出:

    2024年02月11日
    浏览(31)
  • C++读取.txt文本文件操作

    用C++读取.txt文本文件步骤如下:定义一个文件流对象、打开文件、读文件、关闭文件。 1.定义文件流对象 涉及文件操作的程序一般都会使用fstream类,所以要在程序开头包含头文件fstream。 一个文件流对象与一个输入文件相关联,定义一个文件流对象infile。 2.打开文件 一般将

    2024年02月11日
    浏览(42)
  • 提取txt文件中指定数据至excel中(python)

    注意:加 r 的原因是避免转义符的误解 推荐官网,用来检验自己的正则表达式是否正确: 菜鸟工具 相关函数库和函数有: import re 、 re.findall 、 re.search h(tuple格式的,不可以改) h_new hly 目的:不断在hly内加入新的元素,要求元素是浮点型,小数位数为2位,w为寻找的总体,

    2023年04月10日
    浏览(33)
  • Python——读取txt文件每一行数据

    【Python-数据读取】读取txt文件每一行数据生成列表

    2024年02月11日
    浏览(47)
  • Python读取.nc数据并提取指定时间、经纬度维度对应的变量数值

      本文介绍基于 Python 语言的 netCDF4 库,读取 .nc 格式的数据文件,并提取指定维(时间、经度与纬度)下的变量数据的方法。   我们之前介绍过 .nc 格式的数据,其是 NetCDF (Network Common Data Form)文件的扩展名,是一种常用的科学数据存储格式,多用于存储科学和工程领

    2024年03月08日
    浏览(32)
  • Python 读取数据并保存为txt文件的方式

     首先是读取文件,这里使用了pandas库 方式一:将数据框的数据存入txt文件 - - - 使用pandas库 sep=\\\'t\\\'表示用Tab键分隔不同字段,index=False表示不带有行号的输出 方式二:将字符串保存到txt文件 - - - .write() 方式三:使用numpy库

    2024年02月08日
    浏览(37)
  • 【uniapp】实现对TXT文本文件的读取和保存下载

    开发一个uniapp项目时,需要实现对文本的读取和保存文件到本地,虽然可以跨平台,但还是有几个平台不受支持的,接下来讲讲怎么兼容处理读写文本文件这个问题。 项目都按照uniapp官方文档说明写,发现此功能对应的 App 和 H5 平台是没有实现的 App H5 微信小程序 QQ小程序

    2024年02月04日
    浏览(35)
  • Python(wordcloud):根据文本数据(.txt文件)绘制词云图

    本文将介绍如何利用python来根据文本数据(.txt文件)绘制词云图,除了绘制常规形状的词云图(比如长方形),还可以指定词云图的形状。 1、安装相关的库 2、 导入相关的库 3、 相关库的介绍 jieba: 结巴分词库,一个中文分词库。由于中文文本的每个汉字都是连续书写的,

    2024年04月16日
    浏览(44)
  • Python 网络爬虫 数据的存储(一):TXT 文本文件存储:

    提取到数据后, 接下来就是存储数据了, 数据的存储形式多种多样, 其中最简单的一种就是将数据直接保存为文本文件, 例如:txt,  json, csv 等, 还可以将数据保存到数据库中, 如关系型数据库 MySQL, 非关系型数据库 MongoDB, Redis等, 除了这两种, 也可以直接把数据存

    2024年02月03日
    浏览(29)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包