【问题标题】:Loading floating numbers from txt file with python3 numpy使用python3 numpy从txt文件加载浮点数
【发布时间】:2016-01-12 23:21:26
【问题描述】:

我目前正在尝试创建一个简单的随机浮点数列表,将其保存在一个文本文件中,然后使用numpy.loadtxt 加载带有numpy 的浮点数列表。

出于某种原因,每当使用loadtxt 时,它都会声明文件为空。

/usr/local/lib/python3.4/dist-packages/numpy/lib/npyio.py:891: UserWarning: loadtxt: Empty input file: "mydata1.txt"
warnings.warn('loadtxt: Empty input file: "%s"' % fname)

[ ]

class 'numpy.ndarray'

以下是代码示例:

import numpy
import scipy
import matplotlib
from random import random
import codecs

floats = list(random() for i in range (10))
fp = open('mydata1.txt','w')
for item in floats:
    str_item="{0:.5f}".format(item)
    fp.write("%s\n" % str_item )
fp.close

floats2 = numpy.loadtxt("mydata1.txt",dtype="str", delimiter="\n")
for myfloat in floats2:
    print("my floats is:",myfloat)
print(floats2)
print(type(floats2))

【问题讨论】:

  • fp.closefp.close() 不一样... 另外,你为什么不直接创建一个数组并使用savetxt
  • 嗨@Mike Müller。这更像是一个测量 numpy 的能力以及它如何与 txt 文件交互的 excersize。我之前测试过很棒的数组和 tofile 函数

标签: python file numpy io


【解决方案1】:

变化:

fp = open('mydata1.txt','w')
for item in floats:
    str_item="{0:.5f}".format(item)
    fp.write("%s\n" % str_item )
fp.close

进入:

with open('mydata1.txt','w') as fp:
    for item in floats:
        fp.write("{0:.5f}\n".format(item))

它应该可以工作。

with open() 打开文件并在您删除代码后立即关闭它。 您的 fp.close 不会关闭文件,因为您缺少括号。应该是:fp.close()。默认情况下,文件以缓冲模式打开。因此,如果您不刷新或关闭文件,则不会或并非所有数据都写入您的文件。

【讨论】:

  • 非常感谢您的帮助
猜你喜欢
  • 1970-01-01
  • 2012-01-15
  • 1970-01-01
  • 2019-03-18
  • 2021-09-25
  • 2018-09-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多