使用python完成陣列的二進位制寫入和讀取

2021-10-09 07:07:40 字數 986 閱讀 5207

# 以字串格式(文字)寫入陣列

arr = [1,2,3]

with open('example.txt', 'w') as outfile:

outfile.write(' '.join([str(i) for i in arr]))

# 讀取文字到python陣列

with open('example.txt', 'r') as infile:

arr_str = infile.read()

tmp = arr_str.split(' ')

arr_read = [int(i) for i in tmp]

import struct # 需要用到struct庫

# 以二進位制寫入陣列

arr = [1,2,3]

with open('example.dat', 'wb') as outfile: # 二進位制檔案的操作需要使用'wb'方式開啟,其中'b'就代表binary

num = struct.pack('d', len(arr)) # 頭部的乙個double(2個位元組),用於記錄後面資料長度,後面讀取會用到

outfile.write(num)

for i in arr: # 依次寫入資料

tmp = struct.pack('i', i)

outfile.write(tmp)

# 以二進位制讀取陣列

with open('example.dat', 'rb') as f:

num, = struct.unpack('d', f.read(8)) # 首先讀取檔案頭部(上述採用double,所以先讀取8個位元組)

arr_read = struct.unpack('{}i'.format(int(num)), f.read()) # 這裡unpack的第乙個引數表示有多少個int型別的資料

arr_read = list(arr_read)

C 使用BinaryReader類讀取二進位制檔案

binaryreader類用來讀取二進位制資料,其讀取資料的方法很多,常用方法如下 close 關閉binaryreader物件 read 從指定流讀取資料,並將指標遷移,指向下乙個字元。readdecimal 從指定流讀取乙個十進位制數值,並將在流中的位置向前移動16個位元組。readbyte 從...

C 使用BinaryReader類讀取二進位制檔案

close 關閉binaryreader物件 readdecimal 從指定流讀取乙個十進位制數值,並將在流中的位置向前移動16個位元組。readbyte 從指定流讀取乙個位元組值,並將在流中的位置向前移動乙個位元組。readint16 從指定流讀取兩個位元組帶符號整數值,並將在流中的位置向前移動兩...

使用NPOI,完成資料的匯入匯出

解釋下流程,第一步 將資料庫表中的資料匯出到excel表 第二步 將excel表中的資料再插入到資料庫表中 當然沒有做重複性校驗,測試而已 注 表結構很簡單 id int 自增 name nvarchar 20 age int phone nvarchar 13 1 class program218...