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

如何将目录下带数值扩展名的文本文件内容合并存储为单个.npy文件

解决方法

原有代码错误原因

  • glob.glob()的路径参数没有加字符串引号,存在语法错误
  • 没有读取每个文件的数值内容,直接将文件名作为内容存储
  • 循环内反复覆盖写入data.npz,最终仅保留最后一个文件的相关信息
  • 需求是输出.npy格式(单个数组存储),错误使用了用于多文件压缩存储的np.savez方法

实现代码

import numpy as np
import glob
import os

# 获取所有匹配文件并按文件名的数值后缀排序,避免字符串排序的顺序错误
file_list = glob.glob("./signal_*")
file_list.sort(key=lambda x: float(os.path.basename(x).split("signal_data")[-1]))

all_data = []
for file_path in file_list:
    # 逐行读取文件内容转为浮点数值
    with open(file_path, "r") as f:
        values = [float(line.strip()) for line in f if line.strip()]
    all_data.append(values)

# 转为numpy数组后保存为npy文件
merged_arr = np.array(all_data)
np.save("merged_signal.npy", merged_arr)

验证方法

你可以通过以下代码查看生成的npy文件内容是否符合预期:

loaded_data = np.load("merged_signal.npy")
print(loaded_data)

注意:如果不同文件内的数值数量不一致,生成的数组会自动转为对象类型,若需要固定维度的浮点数组,可在读取阶段添加数值数量校验逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 00:54:01