不爱小甲鱼 发表于 2023-1-5 10:32:27

关于Python的二进制文件快速转换

我现在知道的办法是先把二进制文件读出来,然后再通过struct.unpack('',file)循环转换。

有没有比较快的办法

不爱小甲鱼 发表于 2023-1-5 16:20:55

本帖最后由 不爱小甲鱼 于 2023-1-5 16:24 编辑

f1 = open(filepath, 'rb')
file_data = f1.read()
f_len = len(file_data)
f1.close()

data_len = int(f_len/2)
data = []
for i in range(data_len):
    fValue, = struct.unpack('e',file_data)
    data.append(fValue)

这个是我的代码,运行的比较慢

wp231957 发表于 2023-1-5 10:38:53

二进制文件 要咋转   转文本????

不爱小甲鱼 发表于 2023-1-5 11:03:38

wp231957 发表于 2023-1-5 10:38
二进制文件 要咋转   转文本????

浮点数据类型,两个字节转一个数

不爱小甲鱼 发表于 2023-1-5 15:10:17

循环起来是真的慢,继续寻求快捷的方法

isdkz 发表于 2023-1-5 16:22:49

不爱小甲鱼 发表于 2023-1-5 15:10
循环起来是真的慢,继续寻求快捷的方法

其实你的需求我都没明白,不知道其他人明白没

isdkz 发表于 2023-1-5 16:31:58

不爱小甲鱼 发表于 2023-1-5 16:20
f1 = open(filepath, 'rb')
file_data = f1.read()
f_len = len(file_data)


会不会是因为你的数据量大,所以才慢?

不爱小甲鱼 发表于 2023-1-5 16:33:08

isdkz 发表于 2023-1-5 16:22
其实你的需求我都没明白,不知道其他人明白没

我有一个二进制数据文件(几百M到几G)需要处理成十进制的文件然后另存。现在觉得我自己的方法运行起来有点慢,想学习学习看有没有比较好的方法,提高效率。我觉得目前的方法matlab处理起来都比这个快。

不爱小甲鱼 发表于 2023-1-5 16:34:21

isdkz 发表于 2023-1-5 16:31
会不会是因为你的数据量大,所以才慢?

有可能,所以想找快捷的方法

isdkz 发表于 2023-1-5 16:36:15

不爱小甲鱼 发表于 2023-1-5 16:33
我有一个二进制数据文件(几百M到几G)需要处理成十进制的文件然后另存。现在觉得我自己的方法运行起来 ...

存在计算机里面的文件都是二进制存储的呀,什么处理成十进制?你的意思是要存成文本文件吧?

不爱小甲鱼 发表于 2023-1-5 16:38:06

isdkz 发表于 2023-1-5 16:36
存在计算机里面的文件都是二进制存储的呀,什么处理成十进制?你的意思是要存成文本文件吧?

对,要做后续的处理,画图,计算,做报告啥的

wp231957 发表于 2023-1-5 16:40:46

不爱小甲鱼 发表于 2023-1-5 16:33
我有一个二进制数据文件(几百M到几G)需要处理成十进制的文件然后另存。现在觉得我自己的方法运行起来 ...

谁处理几个G的文件也不会一闪而过
页: [1]
查看完整版本: 关于Python的二进制文件快速转换