我有這個功能,我想從一個大文件中讀取一個字節。唯一的問題是,在一定數量的文件讀取後,pc上的內存從穩定的1.5gb跳到4gb和更高,取決於文件讀取的次數。 (我打破了80個文件,因爲更高會導致我的電腦崩潰)從大文件讀取一個字節
我只想得到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:如果您將手動打開/關閉變爲像'[文檔]中提到的''語句一樣,您的問題是否仍然存在?(http://docs.python.org/2/tutorial/inputoutput.html#methods-的文件對象)?這樣比較安全:'用open(os.path.join(dirpath,f),'rb')作爲f:f.read(1)'。不管我們在這裏看到什麼,也許你不關閉這些文件? – Tadeck