我正在写一些python代码,我在代码中发现了一个奇怪的行为。
这是代码:
import sys
f=open("test1","wb")
test="1000000000"
f.write(bytearray(int(test)))
f.close()
它生成文件 test1 ,长度为1000000000(1,0 GB),填充0。 这应该发生(如果是,为什么?)或是一个错误?
答案 0 :(得分:1)
bytearray()
函数从参数source
创建一个字节数组,文档说明:
如果是整数,则数组将具有该大小,并将使用空字节进行初始化。
因此,您只需将10亿个空字符(\x00
)写入该文件即可!
答案 1 :(得分:0)
使用单个整数值初始化bytearray
会创建一个指定大小的空(即填充零)bytearray
(documented here)。因此,您的代码将字符串“1000000000”转换为整数,然后创建该大小的bytearray
,并将其写入磁盘。
这种行为没有什么奇怪或令人惊讶的。