首页 > 解决方案 > 在 Python 中后处理 subprocess.run 的输出信息

问题描述

我试图在 Python 中打印 cuda 信息

import subprocess
subprocess.run(["nvcc","--version"],capture_output=True)

结果如下所示

CompletedProcess(args=['nvcc', '--version'], returncode=0, stdout=b'nvcc: NVIDIA (R) Cuda compiler driver\r\nCopyright (c) 2005-2020 NVIDIA Corporation\r\nBuilt on Mon_Nov_30_19:15:10_Pacific_Standard_Time_2020\r\nCuda compilation tools, release 11.2, V11.2.67\r\nBuild cuda_11.2.r11.2/compiler.29373293_0\r\n', stderr=b'')

有什么方法可以使上述输出更具可读性?

尝试后info = list(subprocess.run(["nvcc","--version"],capture_output=True))

我收到以下错误消息

在此处输入图像描述

标签: pythonpython-3.xsubprocess

解决方案


尝试这个:

#first store your output in a list like this:

info = list(subprocess.run(...))

#then format your output and print it:

x = '''
command: {0}
statuscode: {1}
output:
{2}
error : 
{3}
'''

print(x.format("".join(info.args), info.returncode, info.stdout, info.sterr))

推荐阅读