成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

Python怎么讀寫二進(jìn)制文件

本篇內(nèi)容介紹了“Python怎么讀寫二進(jìn)制文件”的有關(guān)知識(shí),在實(shí)際案例的操作過程中,不少人都會(huì)遇到這樣的困境,接下來就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!

成都創(chuàng)新互聯(lián)是一家集網(wǎng)站建設(shè),常熟企業(yè)網(wǎng)站建設(shè),常熟品牌網(wǎng)站建設(shè),網(wǎng)站定制,常熟網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,常熟網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力??沙浞譂M足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。

Python讀寫二進(jìn)制文件

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

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

open函數(shù)中,第一個(gè)參數(shù)表示讀取文件的路徑,第二個(gè)參數(shù)表示打開文件的模式,

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

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

  • ‘a(chǎn)’表示 新寫入的內(nèi)容附加到文件的末尾

  • ‘r+’表示 讀寫

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

注意: 在讀取二進(jìn)制文件時(shí),使用linux系統(tǒng)可以不加“b”,但使用windows一定要“b”,否則會(huì)以普通文本形式讀取。

Python讀取二進(jìn)制文件

讀取二進(jìn)制文件并保存為L(zhǎng)ong型 (讀取原文件通過UltraEdit查看16進(jìn)制編碼是“78 56 34 12”)

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

打印的結(jié)果是305419896。

struct.unpack()函數(shù),第一個(gè)參數(shù)format表示轉(zhuǎn)換的類型,常用的有:

Python怎么讀寫二進(jìn)制文件

讀取二進(jìn)制文件并保存為String類型

原始文件中字符串使用的是TCHAR類型,TCHAR類型的每個(gè)字符占2個(gè)字節(jié),這里的原始數(shù)據(jù)是”Staff 頭銜”,使用UE編輯器查看16進(jìn)制編碼是

Python怎么讀寫二進(jìn)制文件

代碼:

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

代碼中,

第一句表示從二進(jìn)制文件讀取128個(gè)字節(jié);

第二句表示將讀取出來的數(shù)據(jù)轉(zhuǎn)換成utf-16格式編碼的字符串。

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

  • 如果字符編碼U小于0×10000,也就是十進(jìn)制的0到65535之內(nèi),則直接使用兩字節(jié)表示

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

python 寫入二進(jìn)制文件

1.寫入long型數(shù)據(jù)

在上面提到python讀取二進(jìn)制文件并轉(zhuǎn)化為long型,現(xiàn)在逆向?qū)ong保存到文件中,

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

2. 將string類型寫入二進(jìn)制文件

    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表示后,默認(rèn)UTF-16文件的開頭,都會(huì)自動(dòng)放置一個(gè)U+FEFF字符作為Byte Order Mark(UTF-16以FF FE代表,UTF-16BE以FE FF代表),其中U+FEFF字符在Unicode中代表的意義是ZERO WIDTH NO-BREAK SPACE,即它表示沒有寬度也沒有斷字的空白。

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

“Python怎么讀寫二進(jìn)制文件”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注創(chuàng)新互聯(lián)網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!

網(wǎng)站題目:Python怎么讀寫二進(jìn)制文件
鏈接地址:http://jinyejixie.com/article46/ppshhg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)、營(yíng)銷型網(wǎng)站建設(shè)App設(shè)計(jì)、小程序開發(fā)、域名注冊(cè)、虛擬主機(jī)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

搜索引擎優(yōu)化
米林县| 绥江县| 唐山市| 东丰县| 会泽县| 双柏县| 崇州市| 宜丰县| 漾濞| 和林格尔县| 岐山县| 日喀则市| 兴山县| 搜索| 凉山| 泗水县| 洮南市| 鄢陵县| 聂荣县| 体育| 安义县| 仁布县| 朝阳县| 全南县| 盐边县| 宁明县| 青海省| 诏安县| 神农架林区| 平顺县| 沙湾县| 哈密市| 永胜县| 靖西县| 阳新县| 青神县| 西峡县| 沈阳市| 思茅市| 平潭县| 班戈县|