代码:
import tempfile, inspect
# 创建临时文件, 用于存储 subprocess.Popen的输出
out_temp = tempfile.SpooledTemporaryFile(max_size=10*1000)
fileno = out_temp.fileno()
process = subprocess.Popen(command, stdout=fileno, stderr=fileno, shell=True)
process.wait()
# 获取命令输出
out_temp.seek(0)
output = out_temp.read()
error = out_temp.read()
print(inspect.currentframe().f_code.co_name, inspect.currentframe().f_lineno, "output: ", output.decode("utf-8"))
print(inspect.currentframe().f_code.co_name, inspect.currentframe().f_lineno, "error: ", error.decode("utf-8"), "\n\n")