gpt4 book ai didi

python - 我如何在 python 中处理大数据流?

转载 作者:太空宇宙 更新时间:2023-11-04 09:05:14 24 4
gpt4 key购买 nike

Python 新手,c 背景强。

我正在编写一个简单的服务器,它从套接字读取大小为 1024 字节的 block 。我需要将 block 连接成一个大文件(这是一个视频)。对于初学者,我尝试过这样的事情

movie = bytearray()
while numblocksrxd != numBlocks:
data=conn.recv(1024)
numblocksrxd+=1
movie = movie+data

我很快意识到这段代码会在我每次分配给它时创建一个新的 movie 实例,这会导致随着它的增长(我认为)越来越大的 mem 副本。如果我在 C 中这样做,我会简单地 malloc 我需要的空间并在它出现时填充它。我将如何在 Python 中处理它?<​​/p>

最佳答案

movie += data

如果目标是可变的,则扩充赋值通常无需创建新对象即可完成。在这种情况下,bytearray 支持就地 +=,因此这段代码不会创建新对象。当 bytearray 的内部缓冲区空间不足时,它将分配一个新缓冲区,但分配需要摊销常数时间,并且管理缓冲区的 movie 对象不会被替换。

关于python - 我如何在 python 中处理大数据流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21297988/

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