简体   繁体   中英

How do I efficiently fill a file with null data from python?

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)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM