ython二進(jìn)制方式讀取文件,并將讀取出的數(shù)據(jù)以txt的格式保存
import os import struct import numpy as np def read_file(): # 函數(shù)功能為:將一個(gè)文件夾下所有二進(jìn)制文件以每四個(gè)字節(jié)方式讀取,將讀取出的數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)類型的數(shù)據(jù)并以txt格式保存到新的地址去 path = './二進(jìn)制文件所在文件夾名稱' # 文件夾地址 new_path = './要存放生成txt文件的文件夾名稱/' # 新的存放生成文件的文件夾地址 b_list = ['此處填寫二進(jìn)制文件名稱(也可以參考2020.11.10所寫博客,利用后綴名找到path文件夾下所有二進(jìn)制文件)'] for b_file in b_list: f = open(path+'/'+b_file, 'rb') # 對(duì)b_list列表的文件以二進(jìn)制方式讀取 b_file_ext = os.path.splitext(b_file) # 分離二進(jìn)制文件前后綴,b_front為前綴名,b_ext為后綴名 b_front, b_ext = b_file_ext m = [] # 空列表用于存放二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為的浮點(diǎn)數(shù) while True: # 每四個(gè)字節(jié)進(jìn)行讀取以及格式轉(zhuǎn)換 a = f.read(4) if a == b'': # 為空結(jié)束循環(huán) break a_float = struct.unpack("f", a)[0] # 此處存在存儲(chǔ)的大小端問題 將二進(jìn)制數(shù)據(jù)轉(zhuǎn)換為浮點(diǎn)數(shù) m.append(a_float) m_array = np.array(m) # 將m列表轉(zhuǎn)換為array數(shù)組 if not os.path.exists(new_path): # 判斷工作目錄有無(wú)new_path文件夾,若無(wú)則創(chuàng)建 os.mkdir(new_path) np.savetxt(new_path+b_front+'.txt', m_array) # 對(duì)文件進(jìn)行重命名并保存到新的文件夾 f.close() read_file()
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。