Python 从二进制文件中提取和排序数据
所以我刚开始了一门python编程课程,我有一个叫做“风数据分析”的作业,在这个作业中,我要从bin.file文件中提取数据,并将其排序为x、y和z值。到目前为止,我得到了:Python 从二进制文件中提取和排序数据,python,sorting,math,binary,sequences,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(i
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的三维数组。”
我的问题是:
如何从数学上理解赋值描述,以及如何根据排序规则对其进行排序?您可以尝试使用以下代码:
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
语句的工作方式类似于块语句,需要缩进
发件人:
with
语句澄清了以前将使用try…finally
块来确保执行清理代码的代码。在本节中,我将讨论该语句,因为它通常会被使用。在下一节中,我将检查实现细节,并展示如何编写与此语句一起使用的对象
with
语句是一种控制流结构,其基本结构为:
with expression [as variable]:
with-block
表达式将被计算,它将生成一个支持上下文管理协议的对象(即,具有\uuuuuu enter\uuuuuuu()
和\uuuuuu exit\uuuuuuu()
方法)
我试过你的建议,但它只是给了我一个很长的数字序列。我对接收数字数组感兴趣。