私は次のようにPythonでスパースファイルを作成しています:
>>> f = open('testfile', 'ab')
>>> f.truncate(1024000)
>>> f.close()
ファイルが完成すると、ディスク容量は0になりますが、iノードサイズは切り捨てられた値(1000K)に設定されます。
igor47@piglet:~/test$ ls -lh testfile
-rw-r--r-- 1 igor47 igor47 1000K 2010-07-09 04:02 testfile
igor47@piglet:~/test$ du -hs testfile
0 testfile
Python内でファイルの実際のスペース使用量(割り当てられたサイズ)を取得するにはどうすればよいですか?呼び出しはファイルのstat
見かけのサイズを返しますが、ファイル全体を読み取る以外に実際の使用法を取得する方法がわかりません(ファイルがかなり大きくなる可能性があります)
>>> os.stat('testfile').st_size
1024000