You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中subprocess.check_output函数返回类型确认及处理

subprocess.check_output 返回值类型说明

subprocess.check_output的返回值不是始终为字符串,它的类型取决于调用时的参数设置:

默认情况:返回字节串(bytes)

默认不指定编码相关参数时,函数返回的是字节串类型,不是字符串。比如执行简单命令:

import subprocess
output = subprocess.check_output(["echo", "test"])
print(type(output))  # 输出 <class 'bytes'>

处理方式:调用decode()方法把字节串转成字符串,通常用utf-8编码:

str_output = output.decode("utf-8")
# 或者用系统默认编码,直接调用decode()
str_output = output.decode()

指定编码参数:返回字符串(str)

如果调用时指定encoding参数,或者设置text=True(Python3.7及以上推荐)、universal_newlines=True(兼容旧版本),返回值就是字符串类型:

import subprocess
# 方式1:指定encoding
output1 = subprocess.check_output(["echo", "test"], encoding="utf-8")
print(type(output1))  # 输出 <class 'str'>

# 方式2:text=True(Python3.7+)
output2 = subprocess.check_output(["echo", "test"], text=True)
print(type(output2))  # 输出 <class 'str'>

# 方式3:universal_newlines=True(兼容旧版Python)
output3 = subprocess.check_output(["echo", "test"], universal_newlines=True)
print(type(output3))  # 输出 <class 'str'>

特殊情况:空输出

如果执行的命令没有任何输出,返回的是b''(默认字节串模式)或者''(字符串模式),处理逻辑和上面一致即可。

内容的提问来源于stack exchange,提问作者CLAUDIA OTERO

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.30 04:19:50