<分区>
Possible Duplicate:
Quickly create large file on a windows system?
出于测试目的,我希望能够创建和删除非常大的文件(几 GB)。我不需要写任何特定于他们的东西。它们可能是随机数据。有没有办法通过简单地分配磁盘空间来生成大文件?如果没有,写这样一个文件的最快方法是什么?在几秒钟内创建文件是可取的。
我需要在 Python 脚本中执行此操作,并且正在 Windows 7 上执行此操作。
<分区>
Possible Duplicate:
Quickly create large file on a windows system?
出于测试目的,我希望能够创建和删除非常大的文件(几 GB)。我不需要写任何特定于他们的东西。它们可能是随机数据。有没有办法通过简单地分配磁盘空间来生成大文件?如果没有,写这样一个文件的最快方法是什么?在几秒钟内创建文件是可取的。
我需要在 Python 脚本中执行此操作,并且正在 Windows 7 上执行此操作。
最佳答案
这应该适用于 ntfs 文件系统,因为它们支持 sparse files .这几乎是瞬间的。
with open("file.to.create", "w") as file:
file.truncate(10 ** 10)
该文件看起来会被\x00 字节填充,但实际上这些只是在您从文件中读取时根据需要创建的。它几乎不占用磁盘空间(虽然它可能看起来从一开始就占用了全部 10 GB -- 我发现没有简单的方法来检查 Windows 中的真实文件大小),并且增长了写入时分配所需的 block 。据我所知,很有可能创建一个比它所在的磁盘大得多的稀疏文件,尽管这当然可能会在以后导致麻烦。 :)
注意:如果您复制稀疏文件,它可能会在此过程中扩展为非稀疏文件(读取“假”\x00 字节,写入真实\x00 字节)。这是因为它看起来就像一个带有空字节的普通 10 GB 文件以便“向后兼容”——必须执行单独的检查以将其显示为稀疏文件。要成功复制稀疏文件并保持稀疏文件,必须满足两个条件:
例如,USB 拇指驱动器/笔通常默认使用旧的 FAT 文件系统进行格式化,并且它不支持稀疏文件。经测试,Windows XP 的资源管理器在复制时似乎不保留稀疏文件。 This tip建议 Robocopy可以胜任这项工作,但我还没有测试过。
关于python - 如何在 Windows 7 中使用 Python 廉价地创建一个非常大的文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6497722/