是否可以在Python 2.6中将stdin读取为二进制数据?如果是这样,怎么样?
我在Python 3.1文档中看到这很简单,但在2.6中执行此操作的工具似乎并不存在.
如果3.1中描述的方法不可用,有没有办法关闭stdin并以二进制模式重新打开?
更新
为了清楚起见,我在MS-DOS shell中使用'type'来将二进制文件的内容传递给我的python代码.据我所知,这应该相当于Unix'cat'命令.但是当我测试它时,我总是比预期的文件大小少一个字节.
更新#2
首先,感谢所有的答案.我正在慢慢努力寻找一个真实可用的解决方案.最后,我仍然在尝试构建一个自包含的JAR文件,该文件执行我的Python代码,自动传递所有未触及的命令行参数.
我之所以使用Java/JAR/Jython路由,是因为我的一个主外部库只能作为Java JAR使用.但不幸的是,我开始以Python开展工作.不久前将代码转换为Java可能更容易,但由于这些东西都应该是兼容的,我想我会尝试通过它来证明它可以完成.
如果有人想知道,这也与我几天前提出的问题有关.
所以我会尝试更新我原来的问题,并附上一些关于我到目前为止已经弄清楚的内容.
我需要在linux上的python进程之间有效地传输二进制数据.但是我找不到用管道传递它的方法.我得到的最接近的是将其作为字符串传递,但由于某种原因它保留了二进制形式,因此它给我带来了问题.
ciphertext, tag = cipher1.encrypt_and_digest(input().encode())
print(ciphertext)
Run Code Online (Sandbox Code Playgroud)
密文是二进制的,但是当我在另一个进程中测试它的类型时
print(type(sys.stdin.read()))
Run Code Online (Sandbox Code Playgroud)
我明白了
<class 'str'>
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?