91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Python怎么讀寫二進制文件

發布時間:2021-08-12 15:18:12 來源:億速云 閱讀:600 作者:chen 欄目:編程語言

本篇內容介紹了“Python怎么讀寫二進制文件”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

Python讀寫二進制文件

使用python語言直接讀取普通文件,可以使用

open('filepath/filename','r')

open函數中,第一個參數表示讀取文件的路徑,第二個參數表示打開文件的模式,

  • ‘r’表示只讀(缺省,如果文件不存在,則會拋出錯誤)

  • ‘w’表示只寫(如果文件不存在,則自動創建文件)

  • ‘a’表示 新寫入的內容附加到文件的末尾

  • ‘r+’表示 讀寫

如果要以二進制的方式打開文件,需要在第二個參數加上字符“b”(例如,“rb”,“wb”等)。

注意: 在讀取二進制文件時,使用linux系統可以不加“b”,但使用windows一定要“b”,否則會以普通文本形式讀取。

Python讀取二進制文件

讀取二進制文件并保存為Long型 (讀取原文件通過UltraEdit查看16進制編碼是“78 56 34 12”)

    #以二進制的方式讀取文件 #coding: UTF-8  
    fileData = open('/home/ubuntu/staff_sample.dat','rb')   #讀取文件的前4個字節   #將讀取的4個字節轉換為long data_id = struct.unpack("l",fileData.read(4)) print data_id

打印的結果是305419896。

struct.unpack()函數,第一個參數format表示轉換的類型,常用的有:

Python怎么讀寫二進制文件

讀取二進制文件并保存為String類型

原始文件中字符串使用的是TCHAR類型,TCHAR類型的每個字符占2個字節,這里的原始數據是”Staff 頭銜”,使用UE編輯器查看16進制編碼是

Python怎么讀寫二進制文件

代碼:

    data_string = fileData.read(128) readString1 = unicode(data_string,"utf-16") print readString1

代碼中,

第一句表示從二進制文件讀取128個字節;

第二句表示將讀取出來的數據轉換成utf-16格式編碼的字符串。

說明:UTF-16是Unicode的其中一個使用方式,其編碼的方法是:

  • 如果字符編碼U小于0×10000,也就是十進制的0到65535之內,則直接使用兩字節表示

  • 如果字節編碼U大于0×10000,(由于Unicode編碼最大范圍是0x10FFFF),則使用4字節表示

python 寫入二進制文件

1.寫入long型數據

在上面提到python讀取二進制文件并轉化為long型,現在逆向將long保存到文件中,

    #coding: UTF-8   id = 305419896 parsedata_id = struct.pack("L",id) #將long型305419896保存到二進制文件中 #將long型寫入到文件中 WriteFileData = open('/home/ubuntu/pythonfile.dat','wb') WriteFileData.write(parsedata_id) WriteFileData.close()

2. 將string類型寫入二進制文件

    text = 'Staff 頭銜' text1 = text.encode("UTF-16") texlength = len(text1) text2 = text1[2:texlength] #將long型和string保存到文件中 WriteFileData = open('/home/ubuntu/pythonfile.dat','wb') WriteFileData.write(text2); WriteFileData.close()

解釋:上述代碼中的第二行將字符串采用UTF-16表示后,默認UTF-16文件的開頭,都會自動放置一個U+FEFF字符作為Byte Order Mark(UTF-16以FF FE代表,UTF-16BE以FE FF代表),其中U+FEFF字符在Unicode中代表的意義是ZERO WIDTH NO-BREAK SPACE,即它表示沒有寬度也沒有斷字的空白。

如果寫入的二進制文件需要在C、C++語言中使用,或者需要與C、C++的程序通信時,則需要將FF FE字節刪除,也就是需要加入上述代碼中的第三行和第四行,如果只是用于python語言,可不用理會FF FE這兩個開頭字節。

“Python怎么讀寫二進制文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

田阳县| 青神县| 大余县| 英山县| 林芝县| 乌苏市| 重庆市| 静海县| 前郭尔| 义马市| 常熟市| 西盟| 吉林市| 伊吾县| 白山市| 武山县| 宁阳县| 昌都县| 万安县| 长宁县| 延川县| 怀安县| 阜宁县| 蚌埠市| 韶山市| 广德县| 济源市| 武冈市| 郑州市| 长垣县| 武定县| 健康| 乌拉特后旗| 长宁区| 济宁市| 渝北区| 凉城县| 巍山| 炎陵县| 江源县| 丰原市|