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

如何在 Python 中將外部命令中的位元組物件轉換為字串?

Mary-Kate Olsen
發布: 2024-12-19 09:52:09
原創
813 人瀏覽過

How Do I Convert Bytes Objects from External Commands to Strings in Python?

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中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板