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

问题描述 投票:1回答:1

有人可以告诉我如何编码return语句,以便它可以解码它。或者需要更改以获得编码值。

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"))

产量

print(res.decode("utf-8"))
AttributeError: 'tuple' object has no attribute 'decode'
python-3.x subprocess popen with-statement
1个回答
0
投票

Popen.communicate返回(stdout, stderr)的元组,因此您需要将返回值视为:

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

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

© www.soinside.com 2019 - 2024. All rights reserved.