gpt4 book ai didi

python - 从 cStringIO 对象创建 Python array.array 对象

转载 作者:太空宇宙 更新时间:2023-11-04 11:02:58 24 4
gpt4 key购买 nike

我想从 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 不兼容(和 StringIO 就此而言)。有什么方法可以使它起作用吗?

最佳答案

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

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

如果您出于其他原因(作为内存缓冲区或之前的文件)使用 StringIO,则可以使用 StringIO 的 getvalue() 函数来获取字符串值。

关于python - 从 cStringIO 对象创建 Python array.array 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3779206/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com