Python字符串和二進制字符串之間的轉換方法示例
更新時間:2023年06月14日 15:41:23 作者:羽丶千落
python中沒有0-1形式的二進制類型,但我們依然可以存儲二進制類型的數(shù)據,下面這篇文章主要給大家介紹了關于Python字符串和二進制字符串之間的轉換方法,需要的朋友可以參考下
說明
字符串:可以包含任意字符
二進制字符串:轉換結果的長度為8的倍數(shù)
涉及的內容:
- 字符串與bytes類型的互相轉換
- bytes類轉與 list 列表的互相轉換
- bin函數(shù)的使用
- int函數(shù)的使用
字符串轉二進制字符串
步驟:
- 將字符串轉成bytes類型
- 將bytes類型轉成list類型(元素為int型)
- 將list的每個元素轉成二進制字符串(數(shù)值在0-255之間),指定長度為8位
- 拼接每個元素轉成的二進制字符串
實現(xiàn):
text = "我的世界123abc" b_text = text.encode() # b'\xe6\x88\x91\xe7\x9a\x84\xe4\xb8\x96\xe7\x95\x8c123abc' list_b_text = list(b_text) # [230, 136, 145, 231, 154, 132, 228, 184, 150, 231, 149, 140, 49, 50, 51, 97, 98, 99] re = [] for num in list_b_text: re.append(bin(num)[2:].zfill(8)) """ ['11100110', '10001000', '10010001', '11100111', '10011010', '10000100', '11100100', '10111000', '10010110', '11100111', '10010101', '10001100', '00110001', '00110010', '00110011', '01100001', '01100010', '01100011'] """ bin_str = ''.join(re) # '111001101000100010010001111001111001101010000100111001001011100010010110111001111001010110001100001100010011001000110011011000010110001001100011'
二進制字符串轉字符串
步驟:
- 將二進制字符串進行切分,每8位為一組
- 將每一組的二進制字符串轉成int類型,以列表類型存儲
- 將列表轉為bytes類型
- 將bytes類型轉為字符串
實現(xiàn):
bin_str='111001101000100010010001111001111001101010000100111001001011100010010110111001111001010110001100001100010011001000110011011000010110001001100011' list_bin = [bin_str[i:i+8] for i in range(0,len(bin_str),8)] """ ['11100110', '10001000', '10010001', '11100111', '10011010', '10000100', '11100100', '10111000', '10010110', '11100111', '10010101', '10001100', '00110001', '00110010', '00110011', '01100001', '01100010', '01100011'] """ list_int = [] for bin_s in list_bin: list_int.append(int(bin_s,2)) # [230, 136, 145, 231, 154, 132, 228, 184, 150, 231, 149, 140, 49, 50, 51, 97, 98, 99] bytes(list_int).decode() # '我的世界123abc'
附:Python 二進制、整數(shù)相互轉化
整數(shù)轉二進制: 1、采用%2的方式計算 2、采用python自帶了方法 bin. 比如bin(10) 回返回字符串'0b1010' ,只留下‘0',‘1'序列需要把‘0b'去掉. bin(number).replace('0b','') 或bin(number)[2:] >>> bin(10) // 為了下邊表示方便 放入t中 '0b1010' 二進制轉整數(shù): >>> int(t[2:],2) 10
總結
到此這篇關于Python字符串和二進制字符串之間的轉換方法的文章就介紹到這了,更多相關Python字符串和二進制字符串轉換內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python寫的一個定時重跑獲取數(shù)據庫數(shù)據
本文給大家分享基于python寫的一個定時重跑獲取數(shù)據庫數(shù)據的方法,非常不錯,具有參考借鑒價值,需要的朋友參考下2016-12-12Python實現(xiàn)Linux系統(tǒng)上CI/CD工作流的方法詳解
在現(xiàn)代軟件開發(fā)中,持續(xù)集成(CI)和持續(xù)部署(CD)是提高開發(fā)效率、保證代碼質量的重要手段,下面我們來看看如何使用Python實現(xiàn)Linux系統(tǒng)的CI/CD工作流吧2025-04-04Python對文件和目錄進行操作的方法(file對象/os/os.path/shutil 模塊)
下面小編就為大家?guī)硪黄狿ython對文件和目錄進行操作的方法(file對象/os/os.path/shutil 模塊)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-05-05