2010-07-31 46 views
5

我需要創建不包含數據的任意大小的文件。這可能相當大。雖然我可以循環並寫入一個空字符,直到達到文件大小,這看起來很難看。如何高效地填充python中的空數據文件?

with open(filename,'wb') as f: 
    # what goes here? 

什麼是有效的,pythonic的方式來做到這一點?

回答

16

您可以尋找一個特定的位置並寫入一個字節,操作系統會奇蹟般地讓文件的其餘部分出現。

with open(filename, "wb") as f: 
    f.seek(999999) 
    f.write("\0") 

您需要編寫至少一個字節才能工作。

+0

而文件系統需要支持稀疏文件 – 2010-07-31 11:58:32

+2

如果文件系統不支持稀疏文件;在這種情況下,操作系統將創建一個等效大小的非稀疏文件。 – 2010-07-31 12:02:07

+0

是的,當然,我出於某種原因想象了一個稀疏文件:) – 2010-07-31 12:05:05

8
with open('zero', 'w') as f: 
    f.seek(999999999) 
    f.write('\0') 

如果操作系統支持它,將創建一個sparse file。神奇的是,這種方式創建的文件不佔用任何空間(直到你將它複製到其他地方的程序不保留漏洞)

相關問題