當前位置:首頁 » 編程語言 » python讀二進制文件

python讀二進制文件

發布時間: 2024-07-16 12:10:33

A. python查看linux執行二進制文件的源代碼

python查看linux執行二進制文件的源代碼的步驟如基襲下。
1、打開終端,使用cd命令進入存放搏巧兄二進制文件的目錄。
2、執行命令,將二寬弊進制文件轉換成匯編代碼:binary_file是要查看的二進制文件名,output_file是轉換後的匯編代碼輸出到的文件名。
3、打開output_file文件,閱讀其中的匯編代碼即可了解二進制文件的運行機制和實現原理。

B. python二進制文件的讀取與寫入可以分別使用 和 方法

可以使用read方法和readline方法

C. python的程序可以編譯成二進制可執行文件么

python下編譯py成pyc和pyo
其實很簡單,

python -m py_compile file.py
python -m py_compile /root/src/{file1,file2}.py
編譯成pyc文件。
也可以寫份腳本來做這事:
Code:

import py_compile
py_compile.compile('path') //path是包括.py文件名的路徑


python -O -m py_compile file.py
編譯成pyo文件。
1.其中的 -m 相當於腳本中的import,這里的-m py_compile 相當於上面的 import py_compile
2.-O 如果改成 -OO 則是刪除相應的 pyo文件,具體幫助可以在控制台輸入 python -h 查看
========================
from:http://blogold.chinaunix.net/u3/93255/showart_1944929.html
什麼是pyc文件
pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的,2.5編譯的pyc文件,2.4版本的 python是無法執行的。
什麼是pyo文件
pyo是優化編譯後的程序 python -O 源文件即可將源程序編譯為pyo文件

什麼是pyd文件
pyd是python的動態鏈接庫。

為什麼需要pyc文件
這個需求太明顯了,因為py文件是可以直接看到源碼的,如果你是開發商業軟體的話,不可能把源碼也泄漏出去吧?所以就需要編譯為pyc後,再發布出去。當然,pyc文件也是可以反編譯的,不同版本編譯後的pyc文件是不同的,根據python源碼中提供的opcode,可以根據pyc文件反編譯出 py文件源碼,網上可以找到一個反編譯python2.3版本的pyc文件的工具,不過該工具從python2.4開始就要收費了,如果需要反編譯出新版本的pyc文件的話,就需要自己動手了(俺暫時還沒這能力^--^),不過你可以自己修改python的源代碼中的opcode文件,重新編譯 python,從而防止不法分子的破解。
生成單個pyc文件
python就是個好東西,它提供了內置的類庫來實現把py文件編譯為pyc文件,這個模塊就是 py_compile 模塊。
使用方法非常簡單,如下所示,直接在idle中,就可以把一個py文件編譯為pyc文件了。(假設在windows環境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函數原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要編譯的py文件的路徑
cfile 表示編譯後的pyc文件名稱和路徑,默認為直接在file文件名後加c 或者 o,o表示優化的位元組碼

from:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html

D. 在python中如何從二進制文件中讀取信息

你是指讀入二進制文件吧?x0dx0a可以使用numpy.fromfile(),也可以使用open(filename, 'rb'),其中的'b'就是二進制的意思,然後使用文件類型的read方法,讀取一些位元組,再用struct.unpack()方法來解析二進制。x0dx0a第一種方法是一次性讀入文件(或文件的前多少個連續位元組)到一個數組中,因此,靈活性差。x0dx0a第二種方法靈活性很高,可以讀取任意位置(使用文件的seek()方法跳躍位置)的二進制數據,再使用struct.unpack()方法來進行各種二進制解析。x0dx0ax0dx0a提示:二進制文件是不保留存儲方式的數據格式,因此,讀二進制文件時應該知道二進制文件的存儲格式。

E. Python中讀取二進制圖片(例如 a.jpg)有關解碼編碼的問題

binascii.hexlify估計能滿足你的要求。不過不建議把二進制數據用編解碼來處理,因為編解碼只是文本採用了不同的編碼方案。而圖像這些二進制有自己的含義,文本編解碼方案不應該用在這些二進制文件上。s就是你的數據,你也別想看懂,除非你知道jpg格式。

F. python如何編譯生成二進制文件

1、可以
2、當你編輯運行py文件後,就會生成對應文件名的pyc文件。
3、pyc是一種二進制文件,是由py文件經過編譯後,生成的文件,是一種byte code,py文件變成pyc文件後,載入的速度有所提高,而且pyc是一種跨平台的位元組碼,是由python的虛擬機來執行的,這個是類似於JAVA或者.NET的虛擬機的概念。pyc的內容,是跟python的版本相關的,不同版本編譯後的pyc文件是不同的。
總之,是可以的

G. 求助: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']
熱點內容
混沌珠演算法 發布:2024-11-26 08:29:17 瀏覽:163
阿里雲解析不到伺服器 發布:2024-11-26 07:57:59 瀏覽:493
python矩陣的行數 發布:2024-11-26 07:56:25 瀏覽:355
街頭籃球手游腳本 發布:2024-11-26 07:51:18 瀏覽:752
閃迪加密器 發布:2024-11-26 07:44:08 瀏覽:553
我的世界伺服器顯示村民名字 發布:2024-11-26 07:37:16 瀏覽:479
php注冊與登錄 發布:2024-11-26 07:31:21 瀏覽:796
基金賬戶如何配置 發布:2024-11-26 07:29:58 瀏覽:181
用電腦怎麼刷汽車行車電腦配置 發布:2024-11-26 07:24:14 瀏覽:689
客戶端ip和伺服器ip地址怎麼設置 發布:2024-11-26 07:18:25 瀏覽:685