从二进制文件

时间:2017-06-17 09:49:22

标签: python sorting math binary sequences

所以我刚刚在python中开始编程课程,我有一个名为“风数据分析”的作业,我将从bin.file中提取数据并将其分类为x,y和z值。到目前为止,我得到了:

filename="turb21351_L72u.bin"
with open(filename,'br') as f: 

buffer = f.read(100000)
print("Length of buffer is %d" % len(buffer))

for i in buffer:
    print(int(i))

哪个工作正常(请注意;我在这里写的脚本上有一些缩进错误)并给出了1到300范围内的值。

问题是对数据进行排序。作业的描述听起来像这样:

“数据文件由Nz X Ny X Nx数字组成(浮点单精度)。数字序列对应索引 z,y和x分别从1到Nz,Ny和Nx依次增加。变化最快的索引是z,后跟y,最慢的变化索引是x。那是, 序列中的第一个Nz数字对应于从1到Nz,y = 1,x = 1的索引z。基于此排序规则,函数必须将数据转换为维度为Nz X Ny X的三维数组NX“。

我的问题是:

如何以数学方式理解分配描述以及如何根据排序规则对其进行排序?

1 个答案:

答案 0 :(得分:1)

您可以尝试使用以下代码:

filename="turb21351_L72u.bin"
with open(filename,'br') as f:
    buffer = f.read(100000)
print("Length of buffer is %d" % len(buffer))

for i in buffer:
    print(int(i))

在python中,在处理非托管资源(如文件流)时使用with关键字。 with语句的作用类似于块语句,需要缩进。

来自Python Docs

  

with语句阐明了之前使用try...finally块的代码,以确保执行清理代码。在本节中,我将讨论通常会使用的语句。在下一节中,我将检查实现细节,并展示如何编写用于此语句的对象。

     

with语句是一个控制流结构,其基本结构为:

with expression [as variable]:
    with-block
     

表达式被计算,它应该产生一个支持上下文管理协议的对象(即具有__enter__()__exit__()方法)。