Numpy savetxt到一个字符串

Coo*_*une 8 python numpy

我想将numpy.savetxt的结果加载到字符串中.基本上以下代码没有中间文件:

import numpy as np

def savetxts(arr):
    np.savetxt('tmp', arr)
    with open('tmp', 'rb') as f:
        return f.read()
Run Code Online (Sandbox Code Playgroud)

Tom*_*ohl 9

对于Python 3.x,您可以使用该io模块:

>>> import io
>>> s = io.BytesIO()
>>> np.savetxt(s, (1, 2, 3), '%.4f')
>>> s.getvalue()
b'1.0000\n2.0000\n3.0000\n'

>>> s.getvalue().decode()
'1.0000\n2.0000\n3.0000\n'
Run Code Online (Sandbox Code Playgroud)

注意:我无法io.StringIO()上班.有任何想法吗?


slo*_*oth 5

您可以使用StringIO(或cStringIO):

该模块实现了类似文件的类StringIO,该类读取和写入字符串缓冲区(也称为内存文件)。

模块的描述说明了一切。只需传递一个StringIOto 的实例np.savetxt而不是一个文件名:

>>> s = StringIO.StringIO()
>>> np.savetxt(s, (1,2,3))
>>> s.getvalue()
'1.000000000000000000e+00\n2.000000000000000000e+00\n3.000000000000000000e+00\n'
>>>
Run Code Online (Sandbox Code Playgroud)