博客專欄

EEPW首頁 > 博客 > ython二進制方式讀取文件,并將讀取出的數(shù)據(jù)以txt的格式保存

ython二進制方式讀取文件,并將讀取出的數(shù)據(jù)以txt的格式保存

發(fā)布人:電子禪石 時間:2024-08-12 來源:工程師 發(fā)布文章
import os
import struct
import numpy as np


def read_file():                                    	# 函數(shù)功能為:將一個文件夾下所有二進制文件以每四個字節(jié)方式讀取,將讀取出的數(shù)據(jù)轉(zhuǎn)換為浮點類型的數(shù)據(jù)并以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 = []											# 空列表用于存放二進制數(shù)據(jù)轉(zhuǎn)換為的浮點數(shù)
	        while True:                                 # 每四個字節(jié)進行讀取以及格式轉(zhuǎn)換
            a = f.read(4)
            if a == b'':                            	# 為空結束循環(huán)
                break
            a_float = struct.unpack("f", a)[0]     		# 此處存在存儲的大小端問題   將二進制數(shù)據(jù)轉(zhuǎn)換為浮點數(shù)
            m.append(a_float)
        m_array = np.array(m)                       	# 將m列表轉(zhuǎn)換為array數(shù)組

        if not os.path.exists(new_path):            	# 判斷工作目錄有無new_path文件夾,若無則創(chuàng)建
            os.mkdir(new_path)

        np.savetxt(new_path+b_front+'.txt', m_array)  	# 對文件進行重命名并保存到新的文件夾
        f.close()

read_file()


*博客內(nèi)容為網(wǎng)友個人發(fā)布,僅代表博主個人觀點,如有侵權請聯(lián)系工作人員刪除。



關鍵詞: python

相關推薦

技術專區(qū)

關閉