【问题标题】:saving text files to .npy file将文本文件保存到 .npy 文件
【发布时间】:2021-12-13 08:11:39
【问题描述】:

我在一个带有数字扩展名的目录中有许多文本文件(例如:signal_data1.9995100000000001,signal_data1.99961 等)

文件内容如下

signal_data1.9995100000000001

-1.710951390504200198e+00
 5.720409824754981720e-01
 2.730176313110273423e+00

信号数据1.99961

-6.710951390504200198e+01
 2.720409824754981720e-01
 6.730176313110273423e+05

我只想将上述文件排列成单个 .npy 文件为

-1.710951390504200198e+00,5.720409824754981720e-01, 2.730176313110273423e+00
-6.710951390504200198e+01,2.720409824754981720e-01, 6.730176313110273423e+05

所以,我想对一个目录的许多文件实现相同的过程。

我试了一个循环如下:

import numpy as np
import glob
for file in glob.glob(./signal_*):
    np.savez('data', file)

但是,它并没有像上面描述的那样给出我想要的。所以在这里我需要帮助。提前致谢。

【问题讨论】:

    标签: python-3.x dataframe numpy for-loop glob


    【解决方案1】:

    这是实现它的另一种方法:

    import os 
    
    dirPath = './data/' # folder where you store your data
    
    with os.scandir(dirPath) as entries:
        output = ""
        for entry in entries: # read each file in your folder
            dataFile = open(dirPath + entry.name, "r")
            dataLines = dataFile.readlines()
            dataFile.close()
            for line in dataLines:
                output += line.strip() + " " # clear all unnecessary characters & append
            output += '\n' # after each file break line
        writeFile = open("a.npy", "w") # save it
        writeFile.write(output)
        writeFile.close()
    

    【讨论】:

    • 错误:OSError:无法将文件 a.npy 解释为泡菜,但运行过程正常
    • 好吧,我犯了点小错误,我需要逗号分隔的输出,请看看我更新后的输出
    • 哎呀,我犯了格式错误。
    • 如您所见,我将每一行连接到一个输出字符串。你可以随意修改它。
    • 满意后别忘了接受答案。
    【解决方案2】:

    您可以使用np.loadtxt()np.save()

    a = np.array([np.loadtxt(f) for f in sorted(glob.glob('./signal_*'))])
    np.save('data.npy', a)
    

    【讨论】:

      猜你喜欢
      • 2012-09-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-10-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多