当前位置: 首页 > 面试题库 >

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

百里弘致
2023-03-14
问题内容

我想创建一个特定大小的文件(例如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兼容性。



 类似资料:
  • 问题内容: 我想创建一个可以容纳10个元素的空列表(或最好的方法)。 之后,我想在该列表中分配值,例如,应该显示0到9: 但是,当我运行此代码时,它会产生错误,或者在其他情况下,它只会显示(空)。 有人可以解释为什么吗? 问题答案: 你不能分配给类似的列表,除非该列表已至少已使用元素初始化。你需要使用append将元素添加到列表的末尾。。 (如果使用字典,则可以使用分配符号)。 创建一个空列表:

  • 问题内容: 出于测试目的,我必须生成一定大小的文件(以测试上传限制)。 在Linux上创建一定大小的文件的命令是什么? 问题答案: 测试文件的大小在哪里(以字节为单位)

  • 问题内容: 在C ++中,我可以创建如下数组: 在python中,我只知道我可以声明一个列表,而不要附加一些项目或类似。 我可以按给定的大小(如c ++)初始化列表,并且不进行任何赋值吗? 问题答案: (tl;博士:您问题的确切答案是或,但您可能不在乎,可以摆脱使用的困扰。) 您可以将列表初始化为所有相同的元素。使用非数字值在语义上有意义(如果使用它会在以后产生错误,这是一件好事)或类似0的值(不

  • 本文向大家介绍在JavaScript中创建特定大小的二进制螺旋数组,包括了在JavaScript中创建特定大小的二进制螺旋数组的使用技巧和注意事项,需要的朋友参考一下 问题 我们需要编写一个接受数字n的JavaScript函数。我们的函数应该构造并返回一个N * N阶的数组(2-D数组),其中1占据从[0,0]开始的所有螺旋位置,而所有0占据非螺旋位置。 因此,对于n = 5,输出将类似于- 示例

  • 问题内容: 有没有一种 有效的 方法来用Java创建具有给定大小的文件? 在C语言中,可以使用ftruncate来完成。 大多数人只会将 n个 虚拟字节写入文件,但是必须有一种更快的方法。我在考虑ftruncate以及稀疏文件 … 问题答案: 创建一个新的RandomAccessFile并调用setLength方法,指定所需的文件长度。底层JRE实现应使用您环境中可用的最有效方法。 以下程序 在L

  • 我想创建一个可以容纳10个元素的空列表(或者任何最好的方式)。 然后,我要在该列表中分配值,例如,该列表应该显示0到9: 但当我运行此代码时,它会生成一个错误,或者在另一种情况下,它只显示(空)。 有人能解释为什么吗?