在python中创建特定大小的文件

发布于 2021-01-29 18:15:44

我想创建一个特定大小的文件(例如1GiB)。内容并不重要,因为我会在其中填充内容。

我正在做的是:

f = open("E:\\sample", "wb")
size = 1073741824 # bytes in 1 GiB
f.write("\0" * size)

但这需要太长时间才能完成。我花了大约1分钟的时间。有什么可以改善的呢?

关注者
0
被浏览
53
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    警告 此解决方案将提供您可能无法预期的结果。参见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兼容性。



知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看