create file of particular size in python

前端 未结 2 976
余生分开走
余生分开走 2020-12-04 23:52

I want to create a file of particular size (say, 1GiB). The content is not important since I will fill stuff into it.

What I am doing is:

f = open(\"         


        
2条回答
  •  囚心锁ツ
    2020-12-05 00:29

    WARNING This solution gives the result that you might not expect. See UPD ...

    1 Create new file.

    2 seek to size-1 byte.

    3 write 1 byte.

    4 profit :)

    f = open('newfile',"wb")
    f.seek(1073741824-1)
    f.write(b"\0")
    f.close()
    import os
    os.stat("newfile").st_size
    
    1073741824
    

    UPD: Seek and truncate both create sparse files on my system (Linux + ReiserFS). They have size as needed but don't consume space on storage device in fact. So this can not be proper solution for fast space allocation. I have just created 100Gib file having only 25Gib free and still have 25Gib free in result.

    Minor Update: Added b prefix to f.write("\0") for Py3 compatibility.

提交回复
热议问题