大きなファイルから1バイトを読みたいというこの機能があります。唯一の問題は、一定量のファイルを読み込んだ後に、PC上のメモリが、ファイルの読み込み回数に応じて安定した1.5GBから4GB以上にジャンプすることです。 (私は80以上のファイルがクラッシュするので、私のPCはクラッシュします)大きなファイルから1バイトを読み取る
私が望むのは、ファイル全体ではなく1バイトを取得することです。助けてください。メモリの問題に対処するため
def mem_test():
count = 0
for dirpath, dnames, fnames in scandir.walk(restorePaths[0]):
for f in fnames:
if 'DIR.EDB' in f or 'PRIV.EDB' in f:
f = open(os.path.join(dirpath, f), 'rb')
f.read(1) #Problem line!
f.close()
if count > 80:
print 'EXIT'
sys.exit(1)
count += 1
mem_test()
だから何が '#Problemライン上で起こりますか'!?エラー? ...戻り値が必要ですか? – Ryan
読んでいなくても起こりますか?開けない? 'fnames'を反復処理しないでください? –
@JasonGray:マニュアルの開閉を[with the documentation](http://docs.python.org/2/tutorial/inputoutput.html#methods-japanese)で述べられているような 'with'ステートメントに変更しても、 of-file-objects)?それはf:f.read(1) 'として' open(os.path.join(dirpath、f)、 'rb')を使ってより安全です。これらのファイルは、ここに表示されているものに関係なく閉じないでください。 – Tadeck