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


