Python 中的位元組編碼和解碼:字串轉換指南
與外部程式互動或處理二進位資料時,經常會遇到資料時,經常會遇到到位元組對象。為了有效地使用它們,可能需要與字串進行轉換。本文將解決有關將包含外部命令輸出的位元組物件轉換為常規 Python 字串的特定問題。
問題:將位元組轉換為字串
考慮以下來自Python 3 的範例:
>>> from subprocess import * >>> stdout = Popen(['ls', '-l'], stdout=PIPE).communicate()[0] >>> stdout b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1\n-rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2\n'
stdout 變數包含一個表示法' ls 輸出的bytes 物件-l'指令。要以人類可讀的格式列印,需要將其轉換為字串。
解決方案:使用 Decode 方法
使用decode() 方法將位元組物件轉換為字串。它需要一個編碼參數,該參數指定 bytes 物件中資料的字元編碼。
>>> stdout_str = stdout.decode('utf-8') >>> print(stdout_str) -rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file1 -rw-rw-r-- 1 thomas thomas 0 Mar 3 07:03 file2
在此範例中,我們指定 'utf-8' 作為編碼,因為它是文字的常見編碼資料。但是,對正在處理的特定資料使用正確的編碼非常重要。
注意:
雖然上述解決方案適用於轉換表示文字資料的位元組對象,重要的是要注意並非所有位元組對像都包含文字。為了處理二進位數據,可能需要不同的技術。
以上是如何在 Python 中將外部命令中的位元組物件轉換為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!