如何使用 Python 中的 subprocess.Popen return 编码值?

How to return encoded value using subprocess.Popen in Python?

谁能告诉我如何对 return 语句进行编码,以便它可以对其进行解码。 或者需要更改什么才能获得编码值。

Code

def run_process(cmd_args):
    with subprocess.Popen(cmd_args, stdout=subprocess.PIPE, stderr=subprocess.PIPE) as proc:
        return proc.communicate()


res = run_process(cmd_args);
print(res)
print(res.decode("utf-8"))

Output

print(res.decode("utf-8"))
AttributeError: 'tuple' object has no attribute 'decode'

Popen.communicate returns (stdout, stderr) 的元组,所以你需要这样处理返回值:

stdout, stderr = run_process(cmd_args);
print(stdout)
print(stdout.decode("utf-8"))

请阅读Popen.communicate's documentation了解更多详情。

而不是 return proc.communicate(),return proc.communicate()[0]。 由于 proc.communicate() 是输出和错误的列表,看来你只需要输出部分