请问,如何用 python 读取不知道数据格式的二进制文件?

2016-05-21 22:24:15 +08:00
 kingmo888

其实,是期货软件文华财经的本地数据文件,已知它是二进制文件,但不知道具体每行是多少字节,这咋整?

用 struct 的 unpack 解码,因为不知道应该每行取多少字节,所以失败了。

我之前只知道用rb来读取二进制文件,还傻不拉唧的用readlines(),学艺不精好尴尬。

结果很重要,但是方法论更重要。 更希望以此为例,在处理某些未知问题的时候(比如就一个dat文件,要读取其内容,不知道是否为二进制之类的),应该从什么角度开始研究入手呢?

3986 次点击
所在节点    Python
5 条回复
neoblackcap
2016-05-21 22:31:18 +08:00
二进制你不知道具体数据格式没办法读,毕竟这相当于一个解码的过程,你不知道具体的规则怎么读?
kingmo888
2016-05-21 22:48:11 +08:00
@neoblackcap 哦。原来是这么回事。那么 unpack 解码时,是否必须为 32 个字节?我不太懂,自己摸索不同的 read 长度来试,提示需要 32 字节。
ipconfiger
2016-05-21 23:01:20 +08:00
@kingmo888 去查资料了解格式是上策, 自己尝试成功的机率小得不现实
chrislon
2016-05-21 23:44:52 +08:00
@kingmo888 二进制文件你必须知道每个位置的字节代表什么意思,不然读出来没有任何用处,文本文件储存也是按照二进制,只是读取的时候,我们知道这个按照文本显示,我们显示的时候还得知道这个二进制是按照什么编码的。以上
kingmo888
2016-05-22 08:37:41 +08:00
@chrislon 哦。原来是这样啊。非常感谢。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/280320

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX