创建Python数组.array来自cStringIO对象的对象

2024-04-19 15:07:31 发布

您现在位置:Python中文网/ 问答频道 /正文

我想从cStringIO对象创建array.array对象:

    import cStringIO, array

    s = """
    <several lines of text>
    """

    f = cStringIO.StringIO(s)
    a = array.array('c')
    a.fromfile(f, len(s))

但我有以下例外:

Traceback (most recent call last):  
  File "./myfile.py", line 22, in <module>  
    a.fromfile(f, len(s))  
TypeError: arg1 must be open file

似乎array.array()正在检查第一个参数的type(),这使得它与cStringIO(以及{})不兼容。有什么办法可以让它工作吗?在


Tags: of对象textimportmostlencallarray
1条回答
网友
1楼 · 发布于 2024-04-19 15:07:31

为什么不使用from?由于StringIO缓冲区完全在内存中,尝试使用文件api将位从一个内存位置读取到另一个内存位置没有任何好处。在

a = array.array('c')
a.fromstring(s)

如果您使用StringIO是出于另一个原因(作为内存缓冲区或之前的文件),那么可以使用StringIO的getvalue()函数来获取字符串值。在

相关问题 更多 >