zoukankan      html  css  js  c++  java
  • 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'.

  • 相关阅读:
    《构建之法》第8、9、10章的读后感和第一个sprint总结
    实验三 进程调度模拟程序
    构建之法第6、7章的读后感
    实验二 作业调度模拟程序
    0415博客园评价
    0414复利计算6.0-----结对编程
    0408~送给小伙伴的汉堡包
    学习进度条
    Sprint three
    sprint one
  • 原文地址:https://www.cnblogs.com/bonelee/p/6497055.html
Copyright © 2011-2022 走看看