【问题标题】:Read and decoding binary file to get results读取和解码二进制文件以获得结果
【发布时间】:2019-05-25 16:57:06
【问题描述】:

我想读取和解码二进制文件以获取值。

在我用来读取文件的代码下方:

with open("modele_petite_zone.op2", "rb") as op2File :
for lines in op2File :
    byte = op2File.read()
    print(byte)

这里是我输出的一部分:

b'\xaf\xc9Dq\xdd\xa8\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9e\xdd\x1f\x004\x08\x00\ x00\x00\xb0\x97EHq\xccD{\xdc\xc3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\x9f\xdd\x1f\x004\x08\x00 \x00\x00\xb0\x97E3S\xc1D{4\xbf\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa8\xdd\x1f\x004\x08\x00 \x00\x00\xb0\x97E\xe1\xc2\xc2D\xc3\xed\xd7\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xa9\xdd\x1f \x004\x08\x00\x00\x00\xb0\x97Ef\xb6\xb7D\xa4\xd8\xd1\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00\xb2 \xdd\x1f\x004\x08\x00\x00\x00\xb0\x97ER\x10\xb7DR\xc8\xea\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00\x00 \xb5\xdd\x1f\x004\x08\x00\x00\x00\xb0\x97E\xa40\xacD\xec1\xe3\xc44\x08\x00\x00\x00\x00\x00\x00\x00\x00\x00 \x00\xbc\xdd\x1f\x004\x08\x00\x00\x00\xb0\x97E\xcd|\xa9D\x00@\xfc\xc44\x08\x00\x00\x00\x00\x00\x00\x00 \x00\x00\x00\xbd\xdd\x1f\x004\x08\x00\x00\x00\xb0\x97E\x1f\xed\x9eD\x1f\x15\xf3\xc44\x08\x00\x00\x00\x00 \x00\x00\x00\x00\x00\x00\xec\x01\x00\x00\x04\x00\x00\x00\xfb\xff\x ff\xff\x04\x00\x00\x00\x04\x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\ x00\x04\x00\x00\x00\x04\x00\x00\x00\x03\x00\x00\x00\x04\x00\x00\x00\x0c\x00\x00\x00\xff\xff\x00\x00\ xff\xff\x00\x00\xff\xff\x00\x00\x0c\x00\x00\x00\x04\x00\x00\x00\xfa\xff\xff\xff\x04\x00\x00\x00\x04\ x00\x00\x00\x01\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\ x00\x00\x00\x00\x00\x00\x04\x00\x00\x00\x04\x00\x00\x00\x02\x00\x00\x00\x04\x00\x00\x00\x08\x00\x00\ x00GEOM3

我可以做些什么来解码输出?

二进制文件可以在这里下载:https://www.dropbox.com/s/uimba2xojc55uii/modele_petite_zone.op2?dl=0

【问题讨论】:

标签: python binary nastran


【解决方案1】:

二进制格式意味着保存的文件不能作为文本读取。但是二进制不是一个可以轻松解析的标准,它只是意味着数据被保存为“数据”(位)而不是文本。实际格式(或结构)可以是开源的或专有的,这意味着它可能是可解析的(如果您知道如何读取数据)或几乎无法理解。

op2 格式似乎是已知的,并且实现了可以解析文件的模块(在此处查看格式描述https://docs.plm.automation.siemens.com/tdoc/nxnastran/11/help/#uid:index_dmap:xid666580:id496821)。

查看此模块以解析 op2 文件: https://pynastran-git.readthedocs.io/en/latest/index.html

例子:

from pyNastran.op2.op2 import OP2
model = OP2()
model.read_op2("modele_petite_zone.op2")
print(model.get_op2_stats())

【讨论】:

  • 我知道 pyNastran,但我想创建我的 python 脚本以便在其他程序中使用它。实际上,我有一个 python 脚本来减少刚度矩阵,并在文本文件中获得输出值。我想执行我的脚本并添加一个 op2 文件阅读器。
  • 格式结构的解释见另一个链接,它告诉你如何读取op2文件
猜你喜欢
  • 2018-03-23
  • 1970-01-01
  • 2014-06-29
  • 2020-10-25
  • 1970-01-01
  • 2014-04-27
  • 2011-11-30
  • 2015-12-11
  • 1970-01-01
相关资源
最近更新 更多