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'.

  • 相关阅读:
    android 四大组件
    apk 反编译
    通过 PC 远程控制 Android 的应用 -- 可以将手机屏幕投射显示到电脑上
    vmware 装 puppy
    vmware 装 puppy
    js prototype 添加属性对象
    js 百度云搜索框
    js 秒杀
    秒杀的性能和超卖
    [JOI2012春季合宿]Rotate (链表)
  • 原文地址:https://www.cnblogs.com/bonelee/p/6497055.html
Copyright © 2011-2022 走看看