Python处理txt数据实例

2023-11-13

现在有一个具体的案例是这样的:CST电磁仿真软件得到一些txt数据在origin_data文件夹中。需要其中的一些数据来通过origin软件绘制曲线分析一些问题,而且需要里面的所有数据曲线显示在同一个图形中。如果通过手动将txt数据一一复制到origin(或excel)中,txt没有整列复制功能,所有手动复制很麻烦。通过Python脚本提取相关数据就比较容易了。

这里写图片描述

首先分析一下txt数据格式:

格式1:

这里写图片描述

格式2:

这里写图片描述
每种格式都是8列数据,一列的数据是关于角度的,我们需要的数据是第3列的rcs数据。之前有一个方案是根据角度来判断需要相应的数据范围,但是这个方案显然有问题,因为两种数据格式中表示角度的数据不在同一列,而且两种格式的角度范围不一样(方位角:0-180;俯仰角:0-360)。所以在已有的代码下,我提出的一种想法是:提取每个txt的第三列rcs数据分别保存为excel文件,然后再限制角度范围进行提取合并(可能是觉得Python操作excel更方便吧,没有尝试直接操作txt的提取合并)。

代码实现:

分两步,第一步保存“分excel”

#! C:\Python27\python
# -*- coding: utf-8 -*-
import os
import xlrd
import sys
from xlwt import *
if __name__ == '__main__': #判断是否直接运行该文件
    threadhold_input = sys.argv[1]#运行程序时要输入一个参数表示argv[1]的值
    file_directory = 'F:\\origin_data\\'  # 指明被遍历的文件夹 
    savefile=r'F:\origin_data1'#创建目录
    if not os.path.isdir(savefile):
        os.mkdir(r'F:/origin_data1/')
    xls_path='F:\\origin_data1\\'#指定“分excel”保存的路径
    for parent, dirnames, filenames in os.walk(file_directory): 
        for filename in filenames: # 输出文件信息    
            with open(file_directory+filename, 'r') as fp:# 打开文件夹中的文件内容
                excel = xlwt.Workbook()# 创建工作簿
                sheet = excel.add_sheet('DataSheet', cell_overwrite_ok=True)
                for j, line in enumerate(fp.readlines()[2:]):
                    rcs = line.strip().split()[2].strip()
                    sheet.write(j, 0, rcs)#在sheet的第j+2行第1列中写入一个rcs 
                    excel.save(xls_path+filename[:-3]+'xls')

通过上面的代码就可以实现保存分excel的功能,并保存在“origin_data1”文件夹中:

这里写图片描述

第二步,对“分excel”通过设置提取的角度来读取相关数据,并写入另一个excel中:

#接上
    y='F:\\exc_py\\'
    n=Workbook()
    new = n.add_sheet('jointdata',cell_overwrite_ok=True)    
    for parent, dirnames, filenames in os.walk(xls_path):
        l=len(filenames)-2#因为此时filenames是一个数组,所有可以通过len返回文件夹中的文件个数,
                          #由于包含了两个Py文件,所有要去掉(至于运行时py文件和批处理文件为什
                          #么要和这些xls文件在一起才能运行,一直没弄明白。希望懂的大神,不吝赐教。
        j=1
        for filename in filenames: 
            data = xlrd.open_workbook(filename)
                          #j=filenames.index(filename)+1
                          #这个函数返回打开的xls文件的索引号,       
                          #但是由于文件夹中有Python文件,还是由于其他的未知原因。
                          #尝试之后,不能成功运行,放弃这个函数。
            table = data.sheets()[0]            
            for i in range(int(threadhold_input)+1):
                  rcs1=table.row_values(i)
                  new.write(i,j,rcs1)
            j+=1
            if j >l:      #将限制条件与文件格式l关联,就可以实现多个文件的自动处理
               break
    for d in range(int(threadhold_input)+1):
        new.write(d,0,d)       
    n.save(y+'jointdata.xls')  #将生成的jiontdata文件单独保存在另一个文件夹中,
                               #这样可以避免在上一步处理excel文件时,出现个数变更问题      

上面代码实现了对上面每个excel数据的选择与合并:

这里写图片描述

代码部分就是这样子的了。

需要说明的是最后的Python文件放在“origin_data1”文件夹中,不然不能产生“jointdata”excel文件,具体原因我也不太清除(希望各路大神不吝赐教),设置的角度大小不能超过4组数据角度的最小范围。如果从cmd窗口中运行Python文件还是比较麻烦的,所有我写了一个批处理文件,可以通过txt格式打开,修改角度范围:

这里写图片描述

这里写图片描述

涉及的文件夹及文件如下:

这里写图片描述

这里写图片描述

这里写图片描述

这里写图片描述

最后附一张通过origin导入代码生成的“jointdata.xls”而绘制的曲线(横坐标是角度(0-90),纵坐标是4组rsc数据):

这里写图片描述

第一次写技术类博客,资质尚浅。希望各路技术大神不吝赐教。如青眼有加,愿共同探讨学习Python数据处理问题。QQ:15298063683(非诚勿扰)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python处理txt数据实例 的相关文章

随机推荐

  • JS实现奇偶数的判断

    奇数和偶数的判断是数学运算中经常碰到的问题 比如 有变量x 如果x 1则为奇数 为2则为偶数 这篇文章主要讲解通过JavaScript来实现奇偶数的判断 方法一 求余 if else的形式 var num parseInt prompt 请
  • 人物专访

    把算法应用到各行各业中 这是我从创业初期就有的梦想 华院计算创始人 董事长宣晓华表示 文 科创板日报 黄心怡 成立于2002年的华院计算 可谓国内算法和AI的最早探索者之一 多年来始终致力于算法技术的研究和应用 面对当前的大模型浪潮 宣晓华
  • keyshot保存为ksp_keyshot渲染教程:keyshot教你如何简单的渲染冰与水

    摘要 keyshot是一个互动性的光线追踪与全域光渲染程序 keyshot的渲染的教程有哪些呢 下面是小编整理的关于keyshot渲染教程之keyshot教你如何简单的渲染冰与水 keyshot是一个互动性的光线追踪与全域光渲染程序 key
  • Windows解决camelot报错OSError: Ghostscript is not installed

    文章目录 解决方案 1 安装并配置Ghostscript 2 添加环境变量 3 重启python应用 解决方法也很简单 就是安装并配置Ghostscript 解决方案 1 安装并配置Ghostscript 首先访问 https ghosts
  • LeetCode--初级算法--数组篇-存在重复

    题目 给定一个整数数组 判断是否存在重复元素 如果任何值在数组中出现至少两次 函数返回 true 如果数组中每个元素都不相同 则返回 false 示例 1 输入 1 2 3 1 输出 true 示例 2 输入 1 2 3 4 输出 fals
  • 我是如何在12周内由零基础成为一名程序员的(转)

    我是如何在12周内由零基础成为一名程序员的 我的故事 在海军陆战队服役超过10年后 我于去年7月份退役了 随后在8月份找到了一份赌场的工作做公关 到今年2月中旬的时候又被辞退了 到5月中旬的时候我在DE协会找到了一份临时的 初级用户体验工程
  • Redis持久化的原理及优化

    更多内容 欢迎关注微信公众号 全菜工程师小辉 Redis提供了将数据定期自动持久化至硬盘的能力 包括RDB和AOF两种方案 两种方案分别有其长处和短板 可以配合起来同时运行 确保数据的稳定性 RDB 保存数据快照至一个RDB文件中 用于持久
  • An HTTP error occurred when trying to retrieve this URL.

    问题背景 conda install xxx 提示 An HTTP error occurred when trying to retrieve this URL Fetching package metadata CondaHTTPErr
  • 【Leetcode】863. 二叉树中所有距离为 K 的结点

    题目描述 题解 用map记录每个结点的父结点 然后让dfs从target结点开始 假设target就是根结点 然后递归时纪录深度 只要深度等于k 就是和target的距离等于k 就可以存入list 执行用时 14 ms 在所有 Java 提
  • LeetCode-1304. Find N Unique Integers Sum up to Zero

    Given an integer n return any array containing n unique integers such that they add up to 0 Example 1 Input n 5 Output 7
  • 毕业遭失业,前途一片黑暗...不得已转行软件测试,太多心酸和无助...

    大家好 我叫小涵 一名应届毕业生 目前已经成功转行互联网 写这篇文章的目的是因为很多人不喜欢自己的现状 想通过学习改变 奈何没有出路 所以想为这部分人提供一些思路 其次文章会总结我自己转行前后的经历和思考 提供一些我亲测有效的面试资源 找不
  • 解决Vmware Unbuntu 22虚拟机网络故障问题

    上午启动Vmware Unbuntu 22虚拟机 发现不能上网 屏幕右上侧的网络图标没有显示 怀疑是昨天在虚拟机上做路由器功能设置的时候某个操作产生的问题 于是进行排障 先尝试重启网络服务 service NetworkManager re
  • elasticsearch安装 及 启动异常解决

    虚拟机使用net连接模式 1 Download and unzip the latest Elasticsearch distribution 2 Run bin elasticsearch on Unix or bin elasticse
  • 第14课 右值引用(1)_基本概念

    1 左值和右值 1 两者区别 左值 能对表达式取地址 或具名对象 变量 一般指表达式结束后依然存在的持久对象 右值 不能对表达式取地址 或匿名对象 一般指表达式结束就不再存在的临时对象 2 右值的分类 将亡值 xvalue eXpiring
  • 数据中台-让数据用起来-7

    文章目录 第七章 数据体系建设 7 1 数体系规划 7 2 贴源数据层建设 全域数据统一存储 7 2 1 相关概念 7 2 2 贴源数据表设计 7 2 3 贴源数据表实现 7 3统一数仓层建设 标准化的数据底座 7 3 1 相关概念 7 3
  • Java高阶面试问答-通用基础

    线程和进程区别 进程是资源分配的最小单位 线程是程序执行的最小单位 进程有自己的独立地址空间 每启动一个进程 系统就会为它分配地址空间 建立数据表来维护代码段 堆栈段和数据段 线程是共享进程的数据空间 因此CPU切换一个线程的花费远比进程要
  • LeetCode-1775. 通过最少操作次数使数组的和相等【贪心,数组,计数】

    LeetCode 1775 通过最少操作次数使数组的和相等 贪心 数组 计数 题目描述 解题思路一 让sum1
  • kubernetes pv回收策略

    本文最近更新于2021 9 11 kubernetes pv回收策略 当用户不再使用其存储卷时 他们可以从 API 中将 PVC 对象删除 从而允许该资源被回收再利用 PersistentVolume 对象的回收策略告诉集群 当其被从申领中
  • 冈萨雷斯《数字图像处理》学习总结及感悟:第一章 绪论 百闻不如一见

    前往老猿Python博文目录 https blog csdn net LaoYuanPython 一 引言 好几月前开始自学OpenCV Python 但老猿以前没接触过图像基础知识 数学知识基本上也都忘光了 因此在自学OpenCV Pyt
  • Python处理txt数据实例

    现在有一个具体的案例是这样的 CST电磁仿真软件得到一些txt数据在origin data文件夹中 需要其中的一些数据来通过origin软件绘制曲线分析一些问题 而且需要里面的所有数据曲线显示在同一个图形中 如果通过手动将txt数据一一复制