在 Windows 上的 Python 中,我可以通过以下方式创建一个大文件
from mmap import mmap
f = open('big.file', 'w')
f.close()
f = open('big.file', 'r+')
m = mmap(f.fileno(), 10**9)
现在 big.file
是(大约)1 GB。但是,在 Linux 上,这将返回 ValueError: mmap length is greater than file size
。
有没有办法在 Linux 上获得与在 Windows 上相同的行为?也就是说,能够使用 mmap
增加文件的大小吗?
最佳答案
至少在 POSIX 系统上,mmap()
不能用于增加(或减少)文件的大小。 mmap()
的功能是对文件的一部分进行内存映射。您请求映射的东西应该实际存在,这是合乎逻辑的!坦率地说,我真的很惊讶您实际上能够在 MS Windows 下执行此操作。
如果你想增加一个文件,只需在 mmap()
之前 ftruncate()
即可。
关于python - 使用 mmap 增加文件的大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17393288/