我想创建一个特定大小的文件(例如1GiB)。内容并不重要,因为我会在其中填充内容。
我正在做的是:
f = open("E:\\sample", "wb") size = 1073741824 # bytes in 1 GiB f.write("\0" * size)
但这需要太长时间才能完成。我花了大约1分钟的时间。有什么可以改善的呢?
警告 此解决方案将提供您可能无法预期的结果。参见UPD …
1创建新文件。
2寻求1个字节的大小。
3写1个字节。
4利润:)
f = open('newfile',"wb") f.seek(1073741824-1) f.write(b"\0") f.close() import os os.stat("newfile").st_size 1073741824
UPD: 查找和截断都在我的系统(Linux + ReiserFS)上创建稀疏文件。它们具有所需的大小,但实际上不占用存储设备上的空间。因此,这不是快速分配空间的正确解决方案。我刚刚创建了100Gib文件,其中只有25Gib免费,结果仍然有25Gib免费。
次要更新: 添加b前缀以f.write("\0")实现Py3兼容性。
b
f.write("\0")