gpt4 book ai didi

python - 相当于将 "b"传递给 os.popen2 的子进程是什么?

转载 作者:行者123 更新时间:2023-12-01 06:15:40 26 4
gpt4 key购买 nike

在 Python 2.x 中,os.popen(command, "b") 为我提供给定命令输出的二进制流。这在 Windows 上尤其重要,其中二进制流和文本流实际上为您提供不同的字节。

subprocess 模块应该取代 os.popen 和其他子进程生成 API。然而,转换文档根本没有讨论处理“b”模式。如何使用 subprocess 获取二进制输出流?

最佳答案

默认情况下,除非您执行 Popen(..., universal_newlines=True)

class Popen(object):
[...]
def __init__(self, ...):
[...]
if p2cwrite is not None:
self.stdin = os.fdopen(p2cwrite, 'wb', bufsize)
if c2pread is not None:
if universal_newlines:
self.stdout = os.fdopen(c2pread, 'rU', bufsize)
else:
self.stdout = os.fdopen(c2pread, 'rb', bufsize)
if errread is not None:
if universal_newlines:
self.stderr = os.fdopen(errread, 'rU', bufsize)
else:
self.stderr = os.fdopen(errread, 'rb', bufsize)

关于python - 相当于将 "b"传递给 os.popen2 的子进程是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3464589/

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