我在Python中有一个浮点值列表:
floats = [3.14, 2.7, 0.0, -1.0, 1.1]
我想使用IEEE 32位编码将这些值写到二进制文件中。用Python做到这一点的最佳方法是什么?我的列表实际上包含大约200
MB的数据,因此最好“不要太慢”。
由于有5个值,所以我只想要一个20字节的文件作为输出。
亚历克斯绝对是对的,用这种方法做起来更有效:
from array import array
output_file = open('file', 'wb')
float_array = array('d', [3.14, 2.7, 0.0, -1.0, 1.1])
float_array.tofile(output_file)
output_file.close()
然后像这样读取数组:
input_file = open('file', 'rb')
float_array = array('d')
float_array.fromstring(input_file.read())
array.array``.fromfile
如果您事先知道项目数(例如,从文件大小或其他某种机制),则对象还具有可用于读取文件的方法。
问题内容: 我正在尝试将数据以二进制格式写入文件以进行压缩。数据完全由浮点组成,因此我决定将数据量化为0到65535之间的整数,以便可以将数据写入两位无符号整数并最终节省空间。但是,我需要将量化数据以二进制而不是人类可读的Ascii输出到文件中。 目前这就是我在做什么 @param outputFile包含已量化数据的文件作为.txt文件中的字符串 但是,这会以人类可读的字符串形式写入文件。我需要
与十进制相似,二进制数也可以表示浮点。现在我读到它可以有类似的浮动 :,:,:...等等。但是,例如,0.1(十进制)如何用二进制表示? 另外,给定一个十进制浮点数,如何将其转换为十进制等价物(假设它不是那么简单)。 编辑:所以我知道更好的问题应该是;如何将十进制浮点转换为二进制?现在我知道我们乘以小数部分,直到它变成零。现在很有可能两个浮点可以有相同的表示,对吗?
问题内容: 如何使用Python文字将整数表示为二进制数? 我很容易找到十六进制的答案: 和八进制: 如何使用文字在Python中表示二进制? 答案摘要 Python 2.5及更早版本:可以使用,但不能使用文字来表示二进制。 Python 2.5和更早版本: 无法 表达二进制文字。 Python 2.6 beta:您可以这样做:或。 Python 2.6 beta:还将允许或(第二个字符为字母O)
本文向大家介绍Python中的十进制到二进制列表转换,包括了Python中的十进制到二进制列表转换的使用技巧和注意事项,需要的朋友参考一下 Python是一种通用语言,可以处理数据处理过程中提出的许多要求。当我们需要将十进制数转换为二进制数时,可以使用以下python程序。 使用格式 我们可以使用格式化程序中的字母来表示哪个数字基:十进制,十六进制,八进制或二进制,我们希望对数字进行格式化。在下面
问题内容: 我想将二进制数转换为浮点数。这是一种可能性的示例: 给我正确的输出: 不幸的是,我正在使用二进制 字符串 ,即,我需要类似的东西。 但是,这不起作用: 我尝试使用它将带引号的可打印数据块转换回二进制并返回二进制数据。但是最终,我得到了同样的错误: 我了解输出数字是整数的情况,但是如果我想获得数字12.546怎么办?那么该函数对二进制字符串的调用是什么样的? 问题答案: 另一种选择是做
问题内容: Python Decimal不支持从float构造。它期望您必须先将float转换为字符串。 这非常不方便,因为float的标准字符串格式器要求您指定小数位数而不是有效位数。因此,如果您的数字最多可能有15个小数位,则需要将其格式设置为Decimal(“”%。15f“%my_float),如果您之前还有任何有效数字的话,也会在第15个小数位出现垃圾十进制。 有人可以建议一种在用户输入时