V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
kingmo888
V2EX  ›  Python

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

  •  
  •   kingmo888 · 2016-05-21 22:24:15 +08:00 · 3956 次点击
    这是一个创建于 3099 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    5 条回复    2016-05-22 08:37:41 +08:00
    neoblackcap
        1
    neoblackcap  
       2016-05-21 22:31:18 +08:00
    二进制你不知道具体数据格式没办法读,毕竟这相当于一个解码的过程,你不知道具体的规则怎么读?
    kingmo888
        2
    kingmo888  
    OP
       2016-05-21 22:48:11 +08:00
    @neoblackcap 哦。原来是这么回事。那么 unpack 解码时,是否必须为 32 个字节?我不太懂,自己摸索不同的 read 长度来试,提示需要 32 字节。
    ipconfiger
        3
    ipconfiger  
       2016-05-21 23:01:20 +08:00
    @kingmo888 去查资料了解格式是上策, 自己尝试成功的机率小得不现实
    chrislon
        4
    chrislon  
       2016-05-21 23:44:52 +08:00
    @kingmo888 二进制文件你必须知道每个位置的字节代表什么意思,不然读出来没有任何用处,文本文件储存也是按照二进制,只是读取的时候,我们知道这个按照文本显示,我们显示的时候还得知道这个二进制是按照什么编码的。以上
    kingmo888
        5
    kingmo888  
    OP
       2016-05-22 08:37:41 +08:00
    @chrislon 哦。原来是这样啊。非常感谢。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2862 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 14:19 · PVG 22:19 · LAX 06:19 · JFK 09:19
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.