首页 > 编程语言 >python 按时间戳删除32×32数组的前2列和后9列

python 按时间戳删除32×32数组的前2列和后9列

时间:2025-01-15 17:43:51浏览次数:1  
标签:列和后 python 32 数组 current file timestamp array line

还是雨滴谱文件,这次尝试批量处理

首先处理1个单独的txt文件

#!usr/bin/env python
# -*- coding:utf-8 _*-
"""

@author:Suyue
@file:raindrop.py
@time:2025/01/15
{DAY}
@desc:
"""
import numpy as np
import re


def process_file(input_file, output_file):
    # 用于匹配时间戳的正则表达式(这里需要根据你的时间戳格式进行修改)
    timestamp_pattern = re.compile(r'^\d{4}-\d{2}-\d{2} \d{2}:\d{2}:\d{2}$')

    current_array = []
    timestamp = None
    results = []

    with open(input_file, 'r') as f:
        for line in f:
            line = line.strip()

            # 检查是否是时间戳
            if timestamp_pattern.match(line):
                # 如果当前数组不为空,说明我们完成了一个部分的读取
                if current_array:
                    # 将当前数组转换为numpy数组,并删除前2列和后9列
                    array = np.array(current_array, dtype=int)  # 假设数据是浮点数
                    processed_array = array[:, 2:-9]  # 删除前2列和后9列

                    # 如果没有超出边界,则保存结果
                    if processed_array.shape[1] > 0:
                        results.append((timestamp, processed_array))

                # 更新时间戳和当前数组
                timestamp = line
                current_array = []
            else:
                # 如果不是时间戳,则假设是数组数据(需要根据实际情况调整)
                # 这里假设数据是用空格分隔的浮点数
                if line:  # 避免处理空行
                    row = list(map(int, line.split()))
                    current_array.append(row)

    # 检查最后一个数组(如果有的话)
    if current_array:
        array = np.array(current_array, dtype=int)
        processed_array = array[:, 2:-9]
        if processed_array.shape[1] > 0:
            results.append((timestamp, processed_array))

    # 将结果保存到输出文件
    with open(output_file, 'w') as out_f:
        for ts, array in results:
            # 写入时间戳(可以根据需要调整格式)
            out_f.write(f"{ts}\n")
            # 写入处理后的数组数据
            for row in array:
                out_f.write(" ".join(map(str, row)) + "\n")
            out_f.write("\n")  # 每个部分之间用空行分隔


# 使用示例
input_file = 'D:/rain/53464-20230627202000-20230627202159-0.txt'
output_file = 'D:/rain/53464-20230627202000-20230627202159-1.txt'
process_file(input_file, output_file)

 

标签:列和后,python,32,数组,current,file,timestamp,array,line
From: https://www.cnblogs.com/shirleysu90/p/18671038

相关文章

  • P3247 [HNOI2016] 最小公倍数 解题报告
    前置知识:可撤销并查集用一个栈记录合并顺序,每次撤销将栈顶的元素恢复但是这种方法不能路径压缩,因为会改变节点之间的关系,为了保证时间,可以按照\(size\)进行合并题意显然为能不能找到一条路径,使这条路径上最大的\(a\)为\(qa\),最大的\(b\)为\(qb\)因为有a和b两个限制,考......
  • 第七届传智杯初赛第二场(abc三组)补题+题解python
    文章目录前言A计算商品打折结算金额(B组、C组)B茶杯和球(A组、C组)C游游的字母串(A组、B组、C组)D电梯(B组、C组)E小欧的排列计算(A组、B组、C组)F游游的字母子串(A组、B组、C组)G跳跳跳(A组、B组)H小红的战争棋盘(A组)前言在CSDN上并未找到第七届传智杯......
  • STM32F1基于HAL库的学习记录实用使用教程分享(四、OLED IIC)
    往期内容STM32F1基于HAL库的学习记录实用使用教程分享(一、GPIO_Output)STM32F1基于HAL库的学习记录实用使用教程分享(二、GPIO_Input按键)STM32F1基于HAL库的学习记录实用使用教程分享(三、外部中断按键)文章目录往期内容前言一、IIC1.概念2.IIC作用3.IIC的特点II......
  • 20221320冯泰瑞《密码系统设计》第十二周
    20221320冯泰瑞《密码系统设计》第十二周学习内容HeadFirstC嗨翻C语言第12章课程mindmapAI对学习内容的总结要求让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可以使用微信读书或者云班课电子教材总结《HeadFirstC》第十二章的内容主要介绍了如何在C语言中使......
  • 20221320冯泰瑞—阅读习惯(选做)
    阅读习惯(选做)1.推荐参考批判性思维书单https://weread.qq.com/misc/booklist/3107758_7sb8Fs2Hv,机关公文写作书单https://weread.qq.com/misc/booklist/3107758_7TeJ68iPx,公务员素质书单https://weread.qq.com/misc/booklist/3107758_7usfrsrTZ从中选择阅读,养成阅读习惯2.提......
  • 2025-1-15-十大经典排序算法 C++与python
    文章目录十大经典排序算法比较排序1.冒泡排序2.选择排序3.插入排序4.希尔排序5.归并排序6.快速排序7.堆排序非比较排序8.计数排序9.桶排序10.基数排序十大经典排序算法十大经典排序算法可以分为比较排序和非比较排序:前者包括冒泡排序、选择排序、插......
  • 20221320冯泰瑞《密码系统设计》第十周
    20221320冯泰瑞《密码系统设计》第十周学习内容HeadFirstC嗨翻C语言第10章课程mindmapAI对学习内容的总结要求让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可以使用微信读书或者云班课电子教材总结《HeadFirstC》第十章的内容主题是进程间通信(InterprocessC......
  • 20221320冯泰瑞《密码系统设计》第十一周
    20221320冯泰瑞《密码系统设计》第十一周学习内容HeadFirstC嗨翻C语言第11章课程mindmapAI对学习内容的总结要求让AI(kimi,元宝等)阅读学习内容并进行总结,教材内容可以使用微信读书或者云班课电子教材总结《HeadFirstC》第十一章的内容主要介绍了C语言中网络编程......
  • ch32L103_EVT_定时器TIM1
    参考博文:https://www.cnblogs.com/liaigu/p/17782198.html在CH32L103EVT开发板的范例TIM_INT中,TIM1_INT_Init函数需要适当修改。1主频96MHz,计数时钟预分频器(TIM1_PSC)为16位,取值0~65535,对应TIM_Prescaler。2TIM_RepetitionCounter对应重复计数值寄存器(TIM1_RPTCR)示例中初......
  • 国产化板卡设计原理图:2136-KC705E增强版基于FMC接口的 JFM7K325T PCIeX8 接口卡
    KC705E增强版基于FMC接口的JFM7K325TPCIeX8接口卡    一、板卡概述   本板卡基于FPGAJFM7K325T 芯片,pin_to_pin兼容FPGAXC7K410T-2FFG900 ,支持PCIeX8、64bit DDR3容量2GByte,HPC的FMC连接器,板卡支持各种接口输入,软件支持windows,Linux驱动。    二、功......