可能的重复:
在Windows系统上快速创建大文件? https://stackoverflow.com/questions/982659/quickly-create-large-file-on-a-windows-system
出于测试目的,我希望能够创建和删除非常大的文件(几个 GB)。我没有必要为他们写任何具体的东西。它们可能是随机数据。有没有一种方法可以通过简单地分配磁盘空间来生成大文件?如果没有,写入此类文件的最快方法是什么?在几秒钟内创建文件是理想的。
我需要在 Python 脚本中执行此操作,并且正在 Windows 7 上执行此操作。
这应该适用于 ntfs 文件系统,因为它们支持稀疏文件 http://en.wikipedia.org/wiki/Sparse_file。这几乎是瞬间的。
with open("file.to.create", "w") as file:
file.truncate(10 ** 10)
该文件看起来将填充 \x00 字节,但实际上这些只是在您从文件中读取时根据需要创建的。它几乎不使用任何磁盘空间(尽管它可能look就像它从一开始就使用了全部 10 GB 一样——我发现没有简单的方法来检查 Windows 中的实际文件大小),并且在写入时通过分配所需的块来增长。据我所知,很有可能创建一个比其所在磁盘大得多的稀疏文件,尽管这当然可能会在以后带来麻烦。 :)
请注意:如果复制稀疏文件,它可能会在此过程中扩展为非稀疏文件(读取“fake”\x00 字节,写入real\x00 字节)。这是由于以下事实的结果:looks就像带有空字节的普通 10 GB 文件一样,为了“向后兼容”——必须执行单独的检查以将其显示为稀疏文件。要成功复制稀疏文件并使其保持稀疏文件,必须满足两个条件:
- 用于复制它的工具必须“了解”稀疏文件,并且
- 复制到的文件系统必须支持稀疏文件
例如,USB 拇指驱动器/笔通常默认使用旧的 FAT 文件系统进行格式化,并且它确实not支持稀疏文件。经过测试,Windows XP 的资源管理器在复制时似乎不保留稀疏文件。This tip http://www.tech-archive.net/Archive/Windows/microsoft.public.windows.file_system/2005-08/msg00152.html建议Robocopy http://en.wikipedia.org/wiki/Robocopy可以胜任这项工作,但我还没有测试过。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)