推荐学习书目
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 · May 21, 2016 · 4456 views
    This topic created in 3713 days ago, the information mentioned may be changed or developed.

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

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

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

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

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