与Powershell配合使用时,Python子进程返回的格式不正确

时间:2018-06-26 20:53:44

标签: python powershell subprocess

我一直在尝试以下方法:

   process=check_output(["powershell.exe", "Get-Childitem C:\\Windows\\*.log"]);
           return process

返回结果为:

  
    
      

b'\ r \ n \ r \ n目录:C:\ Windows \ r \ n \ r \ n \ r \ nMode LastWriteTime Leng       名字\ r \ n ---- --------------       ----- ---- \ r \ n-a ---- 2018年6月14日上午11:26           4056 DtcInstall.log \ r \ n-a ---- 6/21/2018 11:33上午             41261 iis.log \ r \ n-a ---- 2016年9月12日4:34                 1342 lsasetup.log \ r \ n-a ---- 6/25/2018 12:06       PM 8904 PFRO.log \ r \ n-a ---- 6/21/2018 12:       75 PM 04:30 setupact.log \ r \ n-a ---- 9/12/2016        上午4:35 0 setuperr.log \ r \ n-a ---- 6/26/201       8 12:17 PM 275 WindowsUpdate.log \ r \ n \ r \ n \ r \ n'

    
  

到处都有\ n和\ r。如何以标准的所需格式返回它?我还尝试了使用.PIPE的子进程Popen方法,该方法给出了相同的结果。

1 个答案:

答案 0 :(得分:0)

结果是一个编码的字节串,您必须先.decode(),然后print()才能看到它的格式。 \r\n是字符串中的换行符。

process = check_output(["powershell.exe", "Get-Childitem C:\\Windows\\*.log"]);
print(process.decode('utf-8'))