いっぱいになったディスクをシミュレートするために、いくつかのテスト条件をセットアップする必要があります。ディスクにガベージを単純に書き込むために、次を作成しました。
#!/usr/bin/python
import os
import sys
import mmap
def freespace(p):
"""
Returns the number of free bytes on the drive that ``p`` is on
"""
s = os.statvfs(p)
return s.f_bsize * s.f_bavail
if __name__ == '__main__':
drive_path = sys.argv[1]
output_path = sys.argv[2]
output_file = open(output_path, 'w')
while freespace(drive_path) > 0:
output_file.write("!")
print freespace(drive_path)
output_file.flush()
output_file.close()
freespace からの戻り値を見る限り、write メソッドはファイルが閉じられるまでファイルを書き込まないため、while 条件が無効になります。
データをファイルに直接書き込む方法はありますか? それとも別の解決策でしょうか?