gpt4 book ai didi

python-3.x - MMAP, "TypeError: ' str'不支持缓冲区接口(interface)”| Python

转载 作者:行者123 更新时间:2023-12-03 09:51:48 25 4
gpt4 key购买 nike

f = open('C:\Python33\File.doc')
s = mmap.mmap(f.fileno(), 0, access=mmap.ACCESS_READ)
if (s.find("blabla")) != -1:
print("True")

当我运行下面的代码时,出现错误“TypeError: 'str' does not support the buffer interface”,这是为什么,我该怎么做才能解决这个问题?

我在网上搜索了答案,一个常见的结果是我使用 Python 3 而不是 Python 2,它们处理数据类型的方式。但我还没有找到直接的答案。

谢谢!

最佳答案

str 是 unicode 代码点,它们不支持缓冲区接口(interface)(这基本上意味着对它们下面的内存的原始访问)。通常,您需要使用 str.encode 将它们转换为 bytes ,或者在这种情况下,您可以通过添加 b 前缀来使用 bytes 文字而不是 str 文字。

if s.find(b'blabla') != -1:
...

What Every Programmer Needs To Know About Unicode很好地解释了为什么需要使用编码来获取字节。这就是 Python 的 str 不提供缓冲区接口(interface)的原因 - 您需要在它知道应该包含哪些字节之前明确地告诉它编码。

关于python-3.x - MMAP, "TypeError: ' str'不支持缓冲区接口(interface)”| Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30099542/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com