问题标签 [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 投票
2 回答
48939 浏览

python - 写入然后读取内存字节 (BytesIO) 给出空白结果

我想试试 python BytesIO 类。

作为一个实验,我尝试写入内存中的 zip 文件,然后从该 zip 文件中读取字节。因此,我没有将文件对象传递给gzip,而是传递了一个BytesIO对象。这是整个脚本:

但它返回一个空bytes对象result。这发生在 Python 2.7 和 3.4 中。我错过了什么?

0 投票
1 回答
455 浏览

python - Where is the stream being closing? using PyQRCode to create a png QR with io stream

I'm using PyQRCode [0] to generate a QR in PNG format under Python 2.7.6.

When I try to write a file on disk using all works ok:

But when I try to use a io stream using this code:

I get on the f.getvalue() line:

The PyQRCode documentation says that the file parameter could be a writeable stream.

I tried hard to debug this but I can't find where the stream is being closed and there is not any .close() statement for the stream. [1]

[0] https://pypi.python.org/pypi/PyQRCode

[1] http://pythonhosted.org//PyQRCode/_modules/pyqrcode.html#QRCode.png

0 投票
1 回答
2933 浏览

python - Python 中的内部接口更喜欢 BytesIO 还是 bytes?

我正在尝试决定在我的代码中使用的最佳内部接口,特别是围绕如何处理文件内容。实际上,文件内容只是二进制数据,因此字节足以表示它们。

我将文件存储在不同的远程位置,所以有几个不同的读写类。我正在尝试找出用于我的功能的最佳界面。最初我使用的是文件路径,但这不是最理想的,因为这意味着磁盘总是被使用(这意味着很多笨拙的临时文件)。

代码中有几个区域具有相同的要求,并且会直接使用从该接口返回的任何内容。因此,我选择的任何抽象都会涉及到相当多的代码。

使用 BytesIO 与字节的各种权衡是什么?

玩弄我发现使用类似文件的接口(BytesIO 等)需要一些管理开销seek(0)等方面。这引发了如下问题:

  • seek是在开始之前更好,还是在完成之后更好?
  • seek是从文件所在的位置开始操作还是从文件所在的位置开始操作?
  • tell()应该保持这个位置吗?
  • 看着类似的东西shutil.copyfileobj不会做任何寻求

我发现使用类似文件的接口的一个优点是它允许在您检索数据时传入 fp 以写入。这似乎提供了很大的灵活性。

在 python 中设计接口时,是否有充分的理由更喜欢 BytesIO 而不是仅使用固定字节?

0 投票
1 回答
2085 浏览

python - BytesIO.read() 如何检测文件结尾?

我试图了解 BytesIO 的工作原理。

我正在尝试从 PDF 中读取 PostScript 文件。当我将文件转换为字符串时,我正确读取了所有内容,除了结尾是乱码。

当我BytesIO.read()在 Python 中这样做时,它以某种方式知道存在乱码并将其删除。我的问题是它怎么知道?是否有它要查找的文件结尾字符?如果是这样,那是什么?

0 投票
3 回答
3016 浏览

python - 如何在 python 3 中通过 FTP 发送 StringIO?

我想通过 FTP 将文本字符串作为文件上传。

此代码返回错误:

0 投票
3 回答
1018 浏览

python - 使用 pygame 从流中播放 MIDI 文件

我想要做的是:创建一个 MIDI 文件,但只在内存中,并将其输入pygame.mixer.music.load(). 这是我一直在尝试的(我从这里使用 MidiFile ):

在这里我收到错误消息

当我做

它按预期工作。

当然,我知道包含文件名的字符串和包含文件内容的字节字符串之间是有区别的。但我在 Daniweb 上找到了这篇使用字节流的帖子,这个例子对我有用。

我只是不知道如何让我的例子起作用。

0 投票
5 回答
108175 浏览

python - PIL 无法识别 io.BytesIO 对象的图像文件

我正在使用 PIL 的 Pillow fork 并不断收到错误消息

OSError: 无法识别图像文件 <_io.BytesIO object at 0x103a47468>

尝试打开图像时。我正在使用带有 python 3.4 的 virtualenv 并且没有安装 PIL。

我试图根据遇到相同问题的其他人找到解决方案,但是,这些解决方案对我不起作用。这是我的代码:

图像存在于文件的初始打开中,并被转换为字节。这似乎适用于几乎所有其他人,但我无法弄清楚为什么它对我来说失败了。

编辑:

不能作为解决方案(尝试过),因为我没有通过流保存图像,我只是用数据实例化 BytesIO,因此(如果我正确考虑的话)seek 应该已经为 0。

0 投票
1 回答
8892 浏览

python-3.x - 将 io.BytesIO 对象传递给 gzip.GzipFile 并写入 GzipFile

我基本上想完全按照以下文档中的内容进行操作gzip.GzipFile

调用 GzipFile 对象的 close() 方法不会关闭 fileobj,因为您可能希望在压缩数据之后附加更多材料。这也允许您传递一个为写入而打开的 io.BytesIO 对象作为 fileobj,并使用 io.BytesIO 对象的 getvalue() 方法检索生成的内存缓冲区。

使用普通文件对象,它可以按预期工作。

gzip.GzipFile但是在传递对象时我无法获得可写io.BytesIO对象。

我是否必须打开io.BytesIO显式进行写作,我该怎么做? 或者我没有想到的open(filename, "wb")返回的文件对象和返回的对象之间有区别吗?io.BytesIO()

0 投票
1 回答
206 浏览

python - eyed3 文件来自字节

是否可以修改下载的 MP3 的标签,而不将其写入磁盘?

我在用

从core.AudioFileMp3AudioInherited继承的类很像mp3.Mp3AudioFile。唯一显着的区别:

不幸的是_tag.parse()抛出一个ValueError: Invalid type: <type '_io.BytesIO'>. 不是BytesIO类似文件的对象吗?

谢谢并恭祝安康!

0 投票
1 回答
633 浏览

python - 从 GDK Pixbuf 重建 png 图像

我想通过套接字发送图像 Pixbuf,但接收到的图像只有黑白且失真。以下是我正在使用的步骤:

1) 获取该 Pixbuf 的像素数组

2)序列化像素数组

3) 将序列化的字符串转换为 BytesIO

4)通过套接字发送

在此之后,我必须通过以下方式重建图像:

1) 将接收到的字符串反序列化到其原始像素数组中

2) 从像素数组构建 Pixbuf

3) 保存图像