1. 基礎(chǔ)知識(shí)掌握
創(chuàng)新互聯(lián)自成立以來(lái),一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、網(wǎng)站制作、成都網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營(yíng)銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。bin文件: open函數(shù)創(chuàng)建file對(duì)象
打開文件的不同模式:例子:open(“file.txt”,‘r’)
模式 描述
r 以只讀方式打開文件。文件的指針將會(huì)放在文件的開頭。這是默認(rèn)模式。
rb 以二進(jìn)制格式打開一個(gè)文件用于只讀。文件指針將會(huì)放在文件的開頭。這是默認(rèn)模式。
r+ 打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。
rb+ 以二進(jìn)制格式打開一個(gè)文件用于讀寫。文件指針將會(huì)放在文件的開頭。
w 打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
wb 以二進(jìn)制格式打開一個(gè)文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
w+ 打開一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
wb+ 以二進(jìn)制格式打開一個(gè)文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。
a 打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
ab 以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。也就是說(shuō),新的內(nèi)容將會(huì)被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。
a+ 打開一個(gè)文件用于讀寫。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。文件打開時(shí)會(huì)是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。
ab+ 以二進(jìn)制格式打開一個(gè)文件用于追加。如果該文件已存在,文件指針將會(huì)放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。
t 文本默認(rèn)
x 寫模式,新建一個(gè)文件,如果該文件存在,則會(huì)報(bào)錯(cuò)。
b 二進(jìn)制模式
+ 打開一個(gè)文件進(jìn)行更新(可讀可寫)。
bin文件的python struct庫(kù) 讀寫屬性
a = struct.pack('B',0x00)
b = struct.unpack(‘B’,a)
這塊可以使用python編譯的看一下哦!(你就明白了)
1. struct.pack用于將Python的值根據(jù)格式符,轉(zhuǎn)換為字符串(因?yàn)镻ython中沒有字節(jié)(Byte)類型,
可以把這里的字符串理解為字節(jié)流,或字節(jié)數(shù)組)。其函數(shù)原型為:struct.pack(fmt, v1, v2, ...),
參數(shù)fmt是格式字符串,關(guān)于格式字符串的相關(guān)信息在下面有所介紹。v1, v2, ...表示要轉(zhuǎn)換的python值。
2. struct.unpack做的工作剛好與struct.pack相反,用于將字節(jié)流轉(zhuǎn)換成python數(shù)據(jù)類型。它的
函數(shù)原型為:struct.unpack(fmt, string),該函數(shù)返回一個(gè)元組
Format C Type Python 字節(jié)數(shù)
x pad byte no value 1
c char string of length 1 1
b signed char integer 1
B unsigned char integer 1
? _Bool bool 1
h short integer 2
H unsigned short integer 2
i int integer 4
I unsigned int integer or long 4
l long integer 4
L unsigned long long 4
q long long long 8
Q unsigned long long long 8
f float float 4
d double float 8
s char[] string 1
p char[] string 1
P void * long
這快就類似于C語(yǔ)言中的字節(jié)對(duì)齊,大小端的選擇
例子:(后面有說(shuō)明)
a = struct.pack('
b = struct.pack('>I',0x12345678) #四字節(jié)存入,按大端存儲(chǔ)
Character Byte order Size and alignment
@ native native 湊夠4個(gè)字節(jié)
= native standard 按原字節(jié)數(shù)
< little-endian standard 按原字節(jié)數(shù)
> big-endian standard 按原字節(jié)數(shù)
! network (= big-endian) standard 按原字節(jié)數(shù)
2. bin文件的打開和模式
file = open(file_name,'wb')#二進(jìn)制寫模式
file = open(file_name,'rb')#二進(jìn)制讀模式
file = open(file_name,'ab')#二進(jìn)制補(bǔ)充讀寫模式
3. bin文件讀取
import struct
import os
def ReadFile():
filepath='7.bin'
binfile = open(filepath, 'rb') #打開二進(jìn)制文件
size = os.path.getsize(filepath) #獲得文件大小
for i in range(size):
data = binfile.read(1) #每次輸出一個(gè)字節(jié)
print(data)
binfile.close()
if __name__ == '__main__':
ReadFile()
7.bin文件如下
4. bin文件寫入
import struct
import os
def WriteFile():
filepath='7.bin'
data = 123
binfile = open(filepath, 'ab+') #打開二進(jìn)制文件(追加完成)
a = struct.pack('B',data)
binfile.write(a)
binfile.close()
if __name__ == '__main__':
WriteFile()
7.bin文件
效果圖
5. bin文件的大小端寫入
import struct
file_name = "5.bin"
def Big_little_endian():
file = open(file_name,'wb')
a = struct.pack('I',0x12345678) #四字節(jié)存入,正常狀態(tài)
b = struct.pack('
c = struct.pack('>I',0x12345678) #四字節(jié)存入,按大端存儲(chǔ)
file.write(a)
file.write(b)
file.write(c)
file.close()
if __name__ == '__main__':
Big_little_endian()
6. bin文件的寫0
import struct
bin_file_1 = "1.bin"
def write0x00():
file = open(bin_file_1,'wb')
for i in range(1,0xFF):
data = struct.pack('B',0x00) #寫0
file.write(data)
file.close
if __name__ == '__main__':
write0x00()
效果圖:
7. bin文件的寫1
import struct
bin_file_2 = "2.bin"
def write0xFF():
file = open(bin_file_2,'wb')
for i in range(0,0xFF):
data = struct.pack('B',0xFF) #寫1
file.write(data)
file.close
if __name__ == '__main__':
write0x00()
效果圖: 無(wú)錫正規(guī)婦科醫(yī)院 http://www.jlfukeyy.com/
8. bin文件的合并
1.bin和2.bin合并成merage.bin
import struct
bin_file_1 = "1.bin"
bin_file_2 = "2.bin"
bin_file_merage = "merage.bin"
def merage_bin():
file_merage = open(bin_file_merage,'wb')
file_1 = open(bin_file_1,'rb')
data = file_1.read()
file_merage.write(data)
file_2 = open(bin_file_2,'rb')
data = file_2.read()
file_merage.write(data)
file_1.close()
file_2.close()
file_merage.close()
if __name__ == '__main__':
merage_bin()
效果圖:
9. bin文件寫入字符串
import struct
import string
bin_file_1 = "7.bin"
enter = memoryview(b"STARTX") #返回值是元組
def writeString():
file = open(bin_file_1,'wb')
for i in enter:
data = struct.pack('B',i)
file.write(data)
file.close
if __name__ == '__main__':
writeString()
效果圖:
另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
新聞名稱:pythonbin文件處理-創(chuàng)新互聯(lián)
路徑分享:http://m.rwnh.cn/article10/djiddo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、Google、動(dòng)態(tài)網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計(jì)、網(wǎng)站導(dǎo)航
聲明:本網(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í)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容