python二進制讀寫
『壹』 求助:python如何按位解析二進制數據
可以的,二進制是計算機內的表示方法,處理二進制數據是最基本的能力。
如果是二進制字元串轉十進制:
>>>x='10101010'
>>>int(x,2)
170
如果是從文件或網路中獲取的數據,要知道某一位是0還是1的話,獲取的數據可以按字元讀取,由於一個字元由8位二進製表示,分別讀取1到8位的二進制值就可以了:
>>>get_char_bit=lambdachar,n:(char>>(8-n))&1#從高到低分別為第1~8位
>>>data=b'ab'#在python3中字元串默認是unicode,所以加上b前綴兼容
>>>#在python3中按字元讀取byte字元串是數字,而python2讀出來的卻是字元,但bytearray是一致的都是數字
>>>data=bytearray(data)
>>>result=[]
>>>forcharindata:
foriinrange(1,9):
result.append(get_char_bit(char,i))
>>>result
[0,1,1,0,0,0,0,1,0,1,1,0,0,0,1,0]
還有一種比較簡單的方法是使用內置的bin函數
>>>data=bytearray(b'ab')
>>>result=[]
>>>forcharindata:
result.extend(bin(char)[2:].rjust(8,'0'))
>>>result
['0','1','1','0','0','0','0','1','0','1','1','0','0','0','1','0']
『貳』 在python中如何從二進制文件中讀取信息
你是指讀入二進制文件吧?
可以使用numpy.fromfile(),也可以使用open(filename, 'rb'),其中的'b'就是二進制的意思,然後使用文件類型的read方法,讀取一些位元組,再用struct.unpack()方法來解析二進制。
第一種方法是一次性讀入文件(或文件的前多少個連續位元組)到一個數組中,因此,靈活性差。
第二種方法靈活性很高,可以讀取任意位置(使用文件的seek()方法跳躍位置)的二進制數據,再使用struct.unpack()方法來進行各種二進制解析。
提示:二進制文件是不保留存儲方式的數據格式,因此,讀二進制文件時應該知道二進制文件的存儲格式。
『叄』 python讀取圖片中的數據再用二進製做位運算後寫入文件
先把字元串轉換成整數,num=int(string)
然後把十進制轉換為二進回制,答num_1 = bin(num)
做完運算以後把二進制轉換為十進制,num = int(num_1, 2)
最後轉換回字元串,string = str(num)
變數名字自己起一個就好
『肆』 Python中讀取二進制圖片(例如 a.jpg)有關解碼編碼的問題
binascii.hexlify估計能抄滿足你的要求。不過襲不建議把二進制數據用編解碼來處理,因為編解碼只是文本採用了不同的編碼方案。而圖像這些二進制有自己的含義,文本編解碼方案不應該用在這些二進制文件上。s就是你的數據,你也別想看懂,除非你知道jpg格式。
『伍』 python 讀一個位元組二進制(原數字用C char類型寫入 )現在要讀出並且轉化為int 類型在python里
如果確定一個位元組可以ord(data)得到一個整型值。
另外,你這個unpack沒有實際起作用,原輸入應該是位元組串,不用unpack
直接list(data)得到一串整型數組
[97, 98, 99, 100, 101, 102]
『陸』 python 二進制讀寫和一般讀寫的區別
w+打開文件會將原文件內容刪除,可以同時對文件進行讀寫 r+打開文件會保持原文件內容不變,同樣可以同時對文件進行讀寫
『柒』 python pdf二進制讀取問題
可以使用源numpy.fromfile(),也可以使用open(filename, 'rb'),其中的'b'就是二進制的意思,然後使用文件類型的read方法,讀取一些位元組,再用struct.unpack()方法來解析二進制。
第一種方法是一次性讀入文件(或文件的前多少個連續位元組)到一個數組中,因此,靈活性差。
第二種方法靈活性很高,可以讀取任意位置(使用文件的seek()方法跳躍位置)的二進制數據,再使用struct.unpack()方法來進行各種二進制解析。
提示:二進制文件是不保留存儲方式的數據格式,因此,讀二進制文件時應該知道二進制文件的存儲格式。
『捌』 如何用python生成和讀取二進制文件
可以使用numpy.fromfile(),也可以使用open(filename,
'rb'),其中的'b'就是二進制的意思,然後使用文件類型的read方法,讀回取一些字zd節,答再用struct.unpack()方法來解析二進制。
第一種方法是一次性讀入文件(或文件的內前多少個連續位元組)到一個數組中,因此,靈活性差。
第二容種方法靈活性很高,可以讀取任意位置(使用文件的seek()方法跳躍位置)的二進制數據,再使用struct.unpack()方法來進行各種二進制解析。
提示:二進制文件是不保留存儲方式的數據格式,因此,讀二進制文件時應該知道二進制文件的存儲格式。
『玖』 python二進制文件的讀取與寫入可以分別使用 和 方法
可以使用read方法和readline方法