首頁 >後端開發 >Python教學 >如何在 Python 3 中將位元組物件轉換為字串?

如何在 Python 3 中將位元組物件轉換為字串?

DDD
DDD原創
2024-12-26 02:49:11618瀏覽

How Do I Convert a Bytes Object to a String in Python 3?

在Python 3 中將位元組轉換為字串

問題:

問題:
import subprocess
p = subprocess.Popen(['ls', '-l'], stdout=subprocess.PIPE)
stdout, _ = p.communicate()

b'total 0\n-rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1\n' 
問題:

問題:

問題:
decoded_stdout = stdout.decode("encoding")

您已經捕獲了外部程式的標準輸出轉換為位元組對象,並且需要將其顯示為字串。例如:

這將產生一個位元組對象,如下所示:

您的目標是將這個位元組物件轉換為標準 Python 字串。

解決方案:

要將位元組物件 stdout 轉換為 Python 3 中的字串,請使用解碼()方法。此方法將位元組物件的編碼作為參數。操作方法如下:
decoded_stdout = stdout.decode("utf-8")

print(decoded_stdout) 
# Output:
# -rw-rw-r-- 1 thomas thomas 0 Mar  3 07:03 file1
選擇編碼:編碼參數指定用於解碼位元組的字元集。在給出的範例中,假定 UTF-8 為預設編碼。但是,使用資料的實際編碼非常重要。 如果您不知道編碼,可以嘗試使用「utf-8」。或者,您可以使用 chardet 等函式庫自動偵測編碼。 範例:使用UTF-8 作為假定編碼: 您現在可以列印解碼後的字串:

以上是如何在 Python 3 中將位元組物件轉換為字串?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn