【问题标题】:Input string at a specific offset in memoryview在 memoryview 中的特定偏移处输入字符串
【发布时间】:2021-10-11 08:34:01
【问题描述】:

我想在 Python 中的 memoryview 中以特定偏移量修改一些值。 示例:

str = "Ys"
#let us assume memoryview[i:i+2].to_bytes() contains b'\x00\x01'
memoryview[i:i+2] = some_function(str)
print(memoryview[i:i+2].to_bytes()) #now contains b'\x59\x73'

我该怎么做?我尝试了一切,但我无法让它发挥作用。 提前致谢。

【问题讨论】:

    标签: python hex byte memoryview


    【解决方案1】:

    这是一个可以帮助你的例子:-

    mv = memoryview(bytearray(b'abcd'))
    mv[1:3] = b'__'
    print(mv.tobytes())
    

    输出将是:- b'a__d'

    请注意,memoryview 对象是使用可写的字节数组构造的。仅使用 b'abcd' 的构造将不允许您这样做

    【讨论】:

      【解决方案2】:

      写就够了

      bytes(str, 'ascii) #or different encode
      

      我无法理解它,因为我试图将 ASCII 字符放在 ASCII 符号上,例如在不可打印的 '\x00' 字节上放置一个 's',然后输出有时可以表示为一个字节或作为一个角色,但仍然以正确的方式放置

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-10-14
        • 2016-03-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-05-17
        • 2016-11-24
        相关资源
        最近更新 更多