我有这个功能,我想从一个大文件中读取一个字节。唯一的问题是,在一定数量的文件读取后,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