使用python3 numpy从txt文件加载浮点数

时间:2016-01-12 23:21:26

标签: python file numpy io

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

出于某种原因,每当使用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))

1 个答案:

答案 0 :(得分:0)

变化:

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()。默认情况下,文件以缓冲模式打开。因此,如果您不刷新或关闭文件,则不会将所有数据写入您的文件。