gpt4 book ai didi

python - 从标准输入读取二进制数据

转载 作者:IT老高 更新时间:2023-10-28 22:20:42 33 4
gpt4 key购买 nike

是否可以在 Python 2.6 中将标准输入读取为二进制数据?如果有,怎么做?

我在 Python 3.1 documentation 中看到这是相当简单的,但在 2.6 中执行此操作的工具似乎不存在。

如果3.1中描述的方法不可用,有没有办法关闭stdin并以二进制模式重新打开?

为了清楚起见,我在 MS-DOS shell 中使用“类型”将二进制文件的内容通过管道传输到我的 python 代码。据我了解,这应该相当于 Unix 的“cat”命令。但是当我对此进行测试时,我总是比预期的文件大小少一个字节。


我选择 Java/JAR/Jython 路线的原因是因为我的主要外部库之一只能作为 Java JAR 使用。但不幸的是,我是从 Python 开始的。不久前将我的代码转换为 Java 可能更容易,但由于这些东西都应该是兼容的,我想我会尝试通过它来证明它可以完成。

如果有人想知道,这也与 this question 有关我前几天问过。

其中一些已在 this question 中得到回答.

因此,我将尝试更新我的原始问题,并添加一些关于我目前所了解的内容的注释。

最佳答案

来自文档(参见 here):

The standard streams are in text mode by default. To write or read binary data to these, use the underlying binary buffer. For example, to write bytes to stdout, use sys.stdout.buffer.write(b'abc').

但是,正如在接受的答案中一样,使用 -u 调用 python 是另一种强制标准输入、标准输出和标准错误完全无缓冲的选项。有关详细信息,请参阅 python(1) 手册页。

documentation on io有关文本缓冲的更多信息,并使用 sys.stdin.detach() 从 Python 中禁用缓冲。

关于python - 从标准输入读取二进制数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2850893/

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