gpt4 book ai didi

Python - 生成填充的最有效方法是什么?

转载 作者:太空狗 更新时间:2023-10-29 21:14:33 24 4
gpt4 key购买 nike

这就是问题所在:我正在读取相当大的 block (512 KiB) 中的二进制文件,并希望在最后一个 block 小于 block 大小时用零填充它。

目前,我正在做这样的事情:

bytes = f.read(self.chunksize)
if len(bytes) > 0:
len_diff = self.chunksize - len(bytes)
if len_diff > 0:
bytes += reduce(lambda x,y: x+y, ["\0" for i in range(0, len_diff)])

显然这是非常低效的,因为 reduce 会进行大量的字符串连接。不过我想知道,如何使用 Python 实现这一目标?在 C 中,我会简单地调用并完成它。

如果使用 Python 无法实现,我愿意将此代码转换为 C 模块和/或完全放弃此项目的 Python,因为它仍处于早期阶段。

干杯!

编辑:我为不记得使用 * 运算符而感觉很糟糕。 :-)

这个解决方案非常适合我:

bytes += "\0" * len_diff

编辑 #2:改用 ljust() 稍微简化了我的代码,因此 Jeff 给出了正确的答案。

最佳答案

你不能只使用 ljust()因为我们在这里处理字符串对象,所以要进行填充?

bytes = f.read(self.chunksize)
if bytes:
bytes = bytes.ljust(self.chunksize, '\0')

关于Python - 生成填充的最有效方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5773607/

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