質問

次のように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
.

役に立ちましたか?

解決

>>> os.stat('testfile').st_blocks*512
0
.

タダヤ:)

st_blocksは、ファイルに実際に割り当てられている512バイトのブロックの数です。st_blocksは、すべてのオペレーティングシステムに存在することが保証されていませんが、一般にスパースファイルをサポートするものです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top