Python 3.3+Linuxosfunction
os.posix_fallocate
os — kernel hints
Pre-allocate disk space for a file of a given size. Availability: Linux.
Syntax
os.posix_fallocate(...)
Unlike truncate, it actually allocates disk space: running out of space shows up immediately rather than mid-write. The file size grows if needed. On filesystems lacking support the library may emulate allocation by writing zeros, which is slow.
Examples
import os
fd = os.open('big.bin', os.O_WRONLY | os.O_CREAT) # → ? только Unix: дескриптор нового файла, например 3
os.posix_fallocate(fd, 0, 1024 * 1024) # → ? только Unix: на диске заранее выделен 1 МБ под файл
print(os.fstat(fd).st_size) # → 1048576 — файл сразу нужного размера, хотя не записано ни байта
os.ftruncate(fd, 8 * 1024 * 1024) # → ? размер вырастет до 8 МБ, но место НЕ резервируется — выйдет «дырявый» (sparse) файл
os.posix_fallocate(fd, 0, 0) # → ? только Unix: OSError [Errno 22] Invalid argument — длина должна быть больше нуля
See also
Common errors
Open in the full glossarydocs.python.orgReport an inaccuracy