我正在尝试使用 AES256 运行加密算法,但出现此错误: "已释放的字节数组对象已导出缓冲区">
我似乎找不到任何关于错误本身实际含义的适当解释,因此无法调试。谁能解释一下?
对于上下文,这似乎特别适用于超过 1GB 的大文件
for root, dirs, files in os.walk(dirPath):
for name in files:
filePath = os.path.join(root, name)
with open(filePath, 'rb') as _file:
textStr = _file.read()
encrypted = fernet.encrypt(textStr)
with open(filePath, 'wb') as _file:
_file.write(encrypted)
上面的代码是我试图加密目录中的所有文件
它指的是缓冲区协议,一种在Python中制作原始内存视图的方法。它不经常在Python层使用,而是通常在CPython C模块中看到,包括内置和第三方C扩展模块。从 Python 本身使用它的最简单方法是使用memoryview
类型。
我的猜测是,代码中的某些内容(您的或您正在使用的模块(将bytearray
对象的视图作为缓冲区,然后在释放缓冲区之前将bytearray
引用减少为零。