在内存视图中特定偏移量处输入字符串
Input string at a specific offset in memoryview
我想修改 Python 内存视图中特定偏移量的一些值。
示例:
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'
我该怎么做?我尝试了一切,但我无法让它发挥作用。
提前致谢。
下面是一个可能对您有所帮助的示例:-
mv = memoryview(bytearray(b'abcd'))
mv[1:3] = b'__'
print(mv.tobytes())
输出将是:- b'a__d'
请注意,memoryview 对象是使用可写字节数组构造的。仅使用 b'abcd' 的构造将不允许您这样做
写就够了
bytes(str, 'ascii) #or different encode
我无法理解它,因为我试图将 ASCII 字符放在 ASCII 符号上,例如 's' 放在不可打印的 '\x00' 字节上,那么有时输出可能是表示为一个字节或一个字符,但仍以正确的方式放置
我想修改 Python 内存视图中特定偏移量的一些值。 示例:
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'
我该怎么做?我尝试了一切,但我无法让它发挥作用。 提前致谢。
下面是一个可能对您有所帮助的示例:-
mv = memoryview(bytearray(b'abcd'))
mv[1:3] = b'__'
print(mv.tobytes())
输出将是:- b'a__d'
请注意,memoryview 对象是使用可写字节数组构造的。仅使用 b'abcd' 的构造将不允许您这样做
写就够了
bytes(str, 'ascii) #or different encode
我无法理解它,因为我试图将 ASCII 字符放在 ASCII 符号上,例如 's' 放在不可打印的 '\x00' 字节上,那么有时输出可能是表示为一个字节或一个字符,但仍以正确的方式放置