问题标签 [bytesio]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
703 浏览

python - 将图像从 BytesIO 对象加载到 Tk 小部件

我想将 BytesIO 对象中的图像渲染到画布上,为此我正在使用以下代码:

我收到带有画布和标签的错误消息:

如果您知道如何修复此代码或以其他方式从 BytesIO 对象在画布上渲染图像,那就太好了。谢谢

0 投票
0 回答
367 浏览

python - 从字节串写入图像

我正在使用 cgi 从远程服务器获取一串字节。这个字节串应该是一个图像,存储在“目的地”

此代码在服务器部分,运行 python 2.6。

然后我使用本地脚本(python 3)从服务器获取响应:

我得到这样的东西:

字面上地。这是一个字符串,你可以看到开头的 b' 和结尾的 '。

现在我想将此字符串转换为可用于 BytesIO 的内容,因为我想将此图像保存在本地。

如果我尝试:

我得到:

我尝试了很多东西,比如切割 b' 部分,但没有任何效果,有些东西我不明白。你有什么主意吗 ?

0 投票
1 回答
791 浏览

python - 如何将 BytesIO 对象附加到 Webob.Response 对象

我将 Webob.Response 对象从我的服务器返回到 http 请求。服务器将一个 BytesIO 对象放在一起。如何正确地将 BytesIO 对象附加到 Webob.Response 对象?

我试过:

不走运,当我response.content在客户端打印时,它只是空的

我也试过:

但这会引发错误:

文件“/home/abdul/abdul/scripting-120218/local/lib/python2.7/site-packages/webob/response.py”,第 147 行,在init self._headerlist.append(('Content-Length', str(len(body)))) TypeError: '_io.BytesIO' 类型的对象没有 len()

0 投票
3 回答
6244 浏览

python - 使用 xlrd 打开 BytesIO (xlsx)

我正在使用 Django,需要阅读上传的 xlsx 文件的表格和单元格。xlrd 应该可以,但是因为文件必须保留在内存中并且可能不会保存到某个位置,所以我不确定如何继续。

在这种情况下,起点是带有上传输入和提交按钮的网页。提交后,文件会被捕获request.FILES['xlsx_file'].file并发送到处理类,该处理类必须提取所有重要数据以进行进一步处理。

的类型request.FILES['xlsx_file'].file是 BytesIO 并且 xlrd 无法读取该类型,因为没有 getitem 方法。

将 BytesIO 转换为 StringIO 后,错误消息似乎保持不变'_io.StringIO' object has no attribute '__getitem__'

0 投票
1 回答
1460 浏览

python - 将生成器包装到缓冲区中?

我有一个 python 生成器,它产生文件的一部分(一个 wsgi app_iter),我需要将它传递给一个期望它具有经典readreadlines方法的接口(我想将它作为wsgi.input另一个传递Request)。

是否有可能以一种不会将整个生成器内容具体化到内存中的方式来做到这一点?这个想法是将生成器包装在具有readand readline(例如BytesIOor StringIO)的东西中,并以懒惰的方式进行。

0 投票
1 回答
21544 浏览

python - 对 StringIO、cStringIO 和 ByteIO 感到困惑

我已经用谷歌搜索并在 SO 上搜索这些缓冲区模块之间的区别。但是,我仍然不太了解,我认为我阅读的一些帖子已经过时了。

在 Python 2.7.11 中,我使用r = requests.get(url). 然后我将StringIO.StringIO(r.content),cStringIO.StringIO(r.content)和传递io.BytesIO(r.content)给了一个为解析内容而设计的函数。

这三种方法都可用。我的意思是,即使文件是二进制文件,使用StringIO. 为什么?

另一件事是关于他们的效率。

如上图所示,cStringIO > StringIO > BytesIO.

我发现有人提到io.BytesIO总是制作一个新副本,这会花费更多时间。但也有一些帖子提到,这在后来的 Python 版本中已修复。

IO那么,任何人都可以在最新的 Python 2.x 和 3.x 中对这些 s 进行彻底的比较吗?


我找到的一些参考资料:

  • https://trac.edgewall.org/ticket/12046

    io.StringIO 需要一个 unicode 字符串。io.BytesIO 需要一个字节字符串。StringIO.StringIO 允许 unicode 或字节字符串。cStringIO.StringIO 需要一个被编码为字节字符串的字符串。

cStringIO.StringIO('abc')不会引发任何错误。

2014 年的这篇文章中有一个修复补丁。

  • 此处未列出许多 SO 帖子。

这是 Eric 示例的 Python 2.7 结果

至于 2.7,cStringIO.StringIO并且StringIO.StringIOio.

0 投票
1 回答
3847 浏览

python - 枕头保存到 BytesIO 或 StringIO KeyError: "JPG"

我有一个 Pillow Image 对象图像,我尝试使用它保存到一个名为 temp 的 IO.BytesIO 对象image.save(temp, format="jpg")

但是,当我运行它时,它会在此行给出 KeyError: "JPG"save_handler = SAVE[format.upper()]

谢谢!

0 投票
1 回答
25560 浏览

python - 在 python3 中写入 csv 中的 io.BytesIO 失败

我正在尝试编写 python 2/3 兼容代码来将字符串写入 csv 文件对象。这段代码:

在 Python3 上给出此错误:

但是 assert 的类型没有问题,那为什么会csv产生错误呢?

我不能BytesIO只用于 Python 2 和 3 吗?这里的问题在哪里?

0 投票
2 回答
3239 浏览

python - Python 3.5 BytesIO 错误

我在 python 2.7 中制作了一个项目,但由于文档位于 python 3.5 中,因此它开始在最后部分给我一些错误。所以我将所有内容都更改为 python 3.5,但由于 bytesIO,它给了我一个错误。你能帮我理解为什么,我应该怎么做?错误来自string_dinamica.write('P3\n') 上的 def repr 。我留下了所有代码以备不时之需。谢谢您的帮助。注意:只是为了确认这适用于 python 2.7 但不适用于 3.5

0 投票
2 回答
17154 浏览

python - 将 BytesIO 对象写入文件,“高效”

因此,将 BytesIO 对象写入文件的一种快速方法是使用:

但是,如果我想迭代 myBytesIOObj 而不是将其写入一大块,我将如何处理它?我在 Python 2.7.1 上。此外,如果 BytesIO 很大,它会是一种更有效的迭代编写方式吗?

谢谢