0
如何讓我的輸出subprocess.check_output(args, "command")
可以被人類讀取?我已經研究了這個主題,並且已經找到了如何「標記」但不是erm ..「de-tokenize」輸出。 我下面的示例代碼相對我以後,但更好地解釋,當我打印string = subprocess.check_output(...)
饋送的字符串時,它幾乎是無法理解。顯示來自子流程的可讀輸出check_output
代碼:
from subprocess import *
readOutput = check_output(
"dir",
shell = True)
print(readOutput)`
輸出:
b' Volume in drive C has no label.\r\n Volume Serial Number is 2AAE-9786\r\n\r\n Directory of C:\\Users\\spike\\Documents\\GitHub\\GitterGUI\\example\r\n\r\n10/19/2015 06:29 PM <DIR> .\r\n10/19/2015 06:29 PM <DIR> ..\r\n10/19/2015 06:29 PM 60 batfile.bat\r\n10/19/2015 06:26 PM 0 New Bitmap Image.bmp\r\n10/19/2015 06:26 PM 22 New Compressed (zipped) Folder.zip\r\n10/19/2015 06:26 PM <DIR> New folder\r\n10/19/2015 06:26 PM <DIR> New folder (2)\r\n10/19/2015 06:26 PM 0 New Text Document (2).txt\r\n10/19/2015 06:26 PM 0 New Text Document (3).txt\r\n10/19/2015 06:26 PM 0 New Text Document.txt\r\n10/19/2015 06:27 PM 96 script.py\r\n 7 File(s) 178 bytes\r\n 4 Dir(s) 819,483,295,744 bytes free\r\n'
它應該是:
Volume in drive C has no label.
Volume Serial Number is 2AAE-9786
Directory of C:\Users\spike\Documents\GitHub\GitterGUI\example
10/19/2015 06:29 PM <DIR> .
10/19/2015 06:29 PM <DIR> ..
10/19/2015 06:29 PM 60 batfile.bat
10/19/2015 06:26 PM 0 New Bitmap Image.bmp
10/19/2015 06:26 PM 22 New Compressed (zipped) Folder.zip
10/19/2015 06:26 PM <DIR> New folder
10/19/2015 06:26 PM <DIR> New folder (2)
10/19/2015 06:26 PM 0 New Text Document (2).txt
10/19/2015 06:26 PM 0 New Text Document (3).txt
10/19/2015 06:26 PM 0 New Text Document.txt
10/19/2015 06:27 PM 96 script.py
7 File(s) 178 bytes
4 Dir(s) 819,481,882,624 bytes free
正如你所看到的,我的腳本需要認真的工作。提前致謝。
可替代地,通過'universal_newlines = TRUE'到'check_output'使它自動解碼。 – ShadowRanger
太棒了!我怎麼能在沒有被禁止離開這個地方的情況下將它添加到我的答案中? – spikespaz
咦?如果你喜歡,請繼續添加它;可以詳細說明。我只是指出了隱式轉換爲'str'而不是獲取'bytes',然後明確轉換的方式。 – ShadowRanger