如何将subproccess中的stdout的\n替换成<br>

我想要将subproccess的stout中的n替换成
,我尝试了如下,都无效,用的是python3

a=subproccess.Popen('ls -al',stdout=subproccess.PIPE,shell=Ture)

我先用了如下代码,但是有有报错‘str’does not support the buffer interface

b=a.stdout.read().replace('\n','<br>') 

然后我又试了如下命令,没有报错,但是并没有替换成功

b=str(a.stdout.read()).replace('\n','<br>') 
阅读 2.1k
1 个回答

你这代码从头到尾都不对啊。你问问题的时候能把代码整理好吗?使用的 python 版本也没说明

我假设你使用的是 python2,你想从 subprocess 中读到标准输出,正确的写法是:

a = subprocess.Popen('ls -l', shell=True, stdout=subprocess.PIPE)
b = a.stdout.read().replace('\n', '<br>')

如果是 python3,a.stdout.read() 得到的是 bytes,所以可以:

b = a.stdout.read().decode().replace('\n', '<br>')
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题