I need to create files of arbitrary size that contain no data. The are potentially quite large. While I could just loop through and write a single null character until I've reached the file size, that seems ugly.
with open(filename,'wb') as f:
# what goes here?
What is the efficient, pythonic way to do this?
You can seek to a specific position and write a byte, and the OS will magically make the rest of the file appear.
with open(filename, "wb") as f:
f.seek(999999)
f.write("\0")
You need to write at least one byte for this to work.
with open('zero', 'w') as f:
f.seek(999999999)
f.write('\0')
Will create a sparse file if the OS supports it. The magic is that files created this way do not take any space (until you copy it elsewhere with a program that does not preserve holes)
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With