gpt4 book ai didi

python - 如何在 Python 3 中从字节缓冲区构造内存中的 TarFile 对象?

转载 作者:IT老高 更新时间:2023-10-28 21:09:32 27 4
gpt4 key购买 nike

是否可以使用包含 tar 数据的缓冲区在内存中创建 TarFile 对象,而无需将 TarFile 写入磁盘并再次打开它?我们得到通过套接字发送的字节。

类似这样的:

import tarfile
byte_array = client.read_bytes()
tar = tarfile.open(byte_array) # how to do this?
# use "tar" as a regular TarFile object
for member in tar.getmembers():
f = tar.extractfile(member)
print(f)

注意:这样做的原因之一是我们最终希望能够同时使用多个线程执行此操作,因此如果两个线程尝试同时执行此操作,则使用临时文件可能会被覆盖。

感谢您的所有帮助!

最佳答案

BytesIO() 来自 IO module完全满足您的需求。

import tarfile, io
byte_array = client.read_bytes()
file_like_object = io.BytesIO(byte_array)
tar = tarfile.open(fileobj=file_like_object)
# use "tar" as a regular TarFile object
for member in tar.getmembers():
f = tar.extractfile(member)
print(f)

关于python - 如何在 Python 3 中从字节缓冲区构造内存中的 TarFile 对象?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15857792/

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