2017-06-17 52 views
1

所以我刚刚开始了一个python编程课程,我有一个名为'Wind data analysis'的任务,我要从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尹恩惠X NX数字(浮点单精度)的数字的序列对应于索引的所有顺序 Z,Y和X,其增加的。从1到Nz,Ny和Nx,变化最大的索引是z,其次是y,最慢的变化索引是x,即 序列中的前Nz个数对应于索引z从1到Nz ,y = 1和x = 1。基于这种排序规则,函数必须将数据转换为尺寸为Nz×Ny×Nx的三维数组。

我的问题是:

是如何assigniment描述中mathmathtically理解,以及如何将一个去了解它的基础上的排序规则排序?

回答

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__()方法)。

+0

我尝试了你的建议,但它给了我一个很长的数字序列。我有兴趣接收一组数字。 – Bananas

+0

你可以分享代码,直到你尝试过吗? – Jeril