pythonbin文件處理-創(chuàng)新互聯(lián)

1. 基礎(chǔ)知識掌握

創(chuàng)新互聯(lián)自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計、網(wǎng)站制作、成都網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊及專業(yè)的網(wǎng)站設(shè)計師團(tuán)隊。

bin文件: open函數(shù)創(chuàng)建file對象

打開文件的不同模式:例子:open(“file.txt”,‘r’)

模式  描述

r  以只讀方式打開文件。文件的指針將會放在文件的開頭。這是默認(rèn)模式。

rb  以二進(jìn)制格式打開一個文件用于只讀。文件指針將會放在文件的開頭。這是默認(rèn)模式。

r+  打開一個文件用于讀寫。文件指針將會放在文件的開頭。

rb+  以二進(jìn)制格式打開一個文件用于讀寫。文件指針將會放在文件的開頭。

w  打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

wb  以二進(jìn)制格式打開一個文件只用于寫入。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

w+  打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

wb+  以二進(jìn)制格式打開一個文件用于讀寫。如果該文件已存在則將其覆蓋。如果該文件不存在,創(chuàng)建新文件。

a  打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。

ab  以二進(jìn)制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。也就是說,新的內(nèi)容將會被寫入到已有內(nèi)容之后。如果該文件不存在,創(chuàng)建新文件進(jìn)行寫入。

a+  打開一個文件用于讀寫。如果該文件已存在,文件指針將會放在文件的結(jié)尾。文件打開時會是追加模式。如果該文件不存在,創(chuàng)建新文件用于讀寫。

ab+  以二進(jìn)制格式打開一個文件用于追加。如果該文件已存在,文件指針將會放在文件的結(jié)尾。如果該文件不存在,創(chuàng)建新文件用于讀寫。

t  文本默認(rèn)

x  寫模式,新建一個文件,如果該文件存在,則會報錯。

b  二進(jìn)制模式

+  打開一個文件進(jìn)行更新(可讀可寫)。

bin文件的python struct庫 讀寫屬性

a = struct.pack('B',0x00)

b = struct.unpack(‘B’,a)

這塊可以使用python編譯的看一下哦!(你就明白了)

1. struct.pack用于將Python的值根據(jù)格式符,轉(zhuǎn)換為字符串(因為Python中沒有字節(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ù)返回一個元組

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語言中的字節(jié)對齊,大小端的選擇

例子:(后面有說明)

a = struct.pack('

b = struct.pack('>I',0x12345678) #四字節(jié)存入,按大端存儲

Character  Byte order  Size and alignment

@  native  native 湊夠4個字節(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)制補充讀寫模式

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) #每次輸出一個字節(jié)

print(data)

binfile.close()

if __name__ == '__main__':

ReadFile()

7.bin文件如下

python 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文件

python bin文件處理

效果圖

python 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é)存入,按大端存儲

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()

效果圖:

python bin文件處理

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()

效果圖: 無錫正規(guī)婦科醫(yī)院 http://www.jlfukeyy.com/

python bin文件處理

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()

效果圖:

python 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()

效果圖:

python bin文件處理

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

新聞名稱:pythonbin文件處理-創(chuàng)新互聯(lián)
路徑分享:http://muchs.cn/article10/djiddo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、Google動態(tài)網(wǎng)站、標(biāo)簽優(yōu)化、網(wǎng)站設(shè)計網(wǎng)站導(dǎo)航

廣告

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

網(wǎng)站優(yōu)化排名