You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何读取文本文件时忽略每行最后时间列并执行FFT处理?

读取文本文件时忽略最后一列时间数据的Python实现

问题描述

我有一个需要读取并执行FFT处理的文本文件,文件内容格式大致如下:

1458 1499 1232 1232 1888 ... 2022-09-11 09:32:51.076
1459 1323 1999 1323 1823 ... 2022-09-11 09:32:51.199

每行包含200列,我希望读取每行时忽略最后一列的时间数据。目前我尝试了以下Python代码:

with open('file') as f:
    w, h = [int(x) for x in next(f).split()] # read first line
    array = []
    for line in f: # read rest of lines
        array.append([int(x) for x in line.split()])

但不知道如何移除每行的最后一列,请求技术帮助。

解决方案

你可以通过Python的切片操作直接去掉每行分割后的最后一个元素,具体修改如下:

基础修改版本

with open('file') as f:
    # 若第一行格式和后续行一致(也带时间列),则此处同样需要加[:-1]
    w, h = [int(x) for x in next(f).split()]
    array = []
    for line in f:
        # 分割后取除最后一列外的所有元素,再转换为整数
        row_data = line.split()[:-1]
        array.append([int(x) for x in row_data])

代码说明

  • line.split()会将每行按空格拆分为字符串列表,[:-1]是切片语法,表示取列表中从第一个元素到倒数第二个元素的所有内容,刚好剔除最后一列的时间字符串。
  • 如果你的第一行也包含时间列(和后续行格式完全一致),需要同步修改第一行的处理逻辑:
    w, h = [int(x) for x in next(f).split()[:-1]]
    

简洁优化写法(列表推导式)

如果想让代码更紧凑,可以用列表推导式替换循环:

with open('file') as f:
    w, h = [int(x) for x in next(f).split()]
    array = [[int(x) for x in line.split()[:-1]] for line in f]

内容的提问来源于stack exchange,提问作者swapnil

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 00:25:19