You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中f.write()生成超大全0文件的异常行为咨询

这是预期行为,不是Bug!

这完全是Python的正常表现,不是bug哦~咱们来一步步拆解你代码里的逻辑:

1. 核心代码bytearray(int(test))的作用

  • 首先int(test)把字符串 "1000000000" 转换成了整数 1000000000(也就是10亿)
  • 当你给bytearray()传入一个整数参数时,Python的规则是:创建一个长度等于该整数的字节数组,并且数组里的每一个字节都会被初始化为0x00(二进制的0)

2. 写入文件的结果自然是全0的1GB文件

因为你生成的bytearray本身就是10亿个0字节,当你用f.write()把它写入文件时,自然就会生成一个大小为1000000000字节(约1GB)、内容全是0的文件。

3. 如果你想实现其他效果(比如写入数字本身的字节)

如果你的初衷是把数字"1000000000"以字节形式写入文件(而不是生成一堆0),可以试试这两种方式:

  • 把字符串直接编码成字节:test.encode('utf-8'),这样写入的是"1000000000"的UTF-8编码(对应字节是b'1000000000')
  • 把整数转换成指定长度的字节序列:比如int(test).to_bytes(4, byteorder='big'),会把10亿转成4字节的大端格式整数(对应字节是b'\x3b\x9a\xca\x00')

内容的提问来源于stack exchange,提问作者Ofey

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.25 02:29:07