• python string写入二进制文件——直接wb形式open file,再write string即可


    4 down vote accepted

    You misunderstood what xhh does in Python strings. Using x notation in Python strings is just syntax to produce certain codepoints.

    You can use 'x61' to produce a string, or you can use 'a'; both are just two ways of saying give me a string with a character with hexadecimal value 61, e.g. the a ASCII character:

    >>> 'x61'
    'a'
    >>> 'a'
    'a'
    >>> 'a' == 'x61'
    True

    The xhh syntax then, is not the value; there is no and no x and no 6 and 1 character in the final result.

    You should just write your string:

    somestring = 'abcd'
    
    with open("test.bin", "wb") as file:
        file.write(somestring)

    There is nothing magical about binary files; the only difference with a file opened in text mode is that a binary file will not automatically translate newlines to the line separator standard for your platform; e.g. on Windows writing produces instead.

    You certainly do not have to produce hexadecimal escapes to write binary data.

    On Python 3 strings are Unicode data and cannot just be written to a file without encoding, but on Python the str type is already encoded bytes. So on Python 3 you'd use:

    somestring = 'abcd'
    
    with open("test.bin", "wb") as file:
        file.write(somestring.encode('ascii'))

    or you'd use a byte string literal; b'abcd'.

  • 相关阅读:
    haproxy的使用
    zookeeper 的多线程和单线程库使用对比
    zookeeper 简介
    将博客搬至CSDN
    Sublime Text 添加eclipse快捷键
    Atom编辑器添加eclipse快捷键
    Linux安装mysql教程
    设计模式
    设计模式
    设计模式
  • 原文地址:https://www.cnblogs.com/bonelee/p/6497055.html
Copyright © 2020-2023  润新知