如何使用 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() 是输出和错误的列表,看来你只需要输出部分
谁能告诉我如何对 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() 是输出和错误的列表,看来你只需要输出部分