解析文件夹中的文件时出现内存错误

时间:2014-03-12 07:10:10

标签: python python-2.7 linecache

我正在使用python 2.7

以下是我解析文件夹中文件的代码

import linecache
import glob
path = r"G:\test\folder1"
Key = '''testresult="NOK"'''
Files = glob.glob(path+'\*.xml')
for FileName in Files:
    Loop_Count = 1
    while Loop_Count!= 50:
        Line_Read = linecache.getline(FileName, Loop_Count)
        if (Key in Line_Read):
            a = FileName.split('\\')
            b = len(a)-1
            print a[b]
            break
        elif(Loop_Count == 49):
            pass
        Loop_Count = Loop_Count+1
print "Completed"

如果folder1有很多文件,我的内存错误

Traceback (most recent call last):
  File "C:\Users\whoKnows\Desktop\test_Check111.py", line 10, in <module> Line_Read = linecache.getline(FileName, Loop_Count)
  File "C:\Python27\lib\linecache.py", line 14, in getline
lines = getlines(filename, module_globals)
  File "C:\Python27\lib\linecache.py", line 40, in getlines
return updatecache(filename, module_globals)
  File "C:\Python27\lib\linecache.py", line 128, in updatecache
lines = fp.readlines()
MemoryError

我认为这是因为我打开所有文件进行阅读,而且我没有关闭它们。谁能告诉我如何在使用glob时关闭文件。

1 个答案:

答案 0 :(得分:1)

MemoryError表示你的内存不足。您可能正在将所有文件一次性加载到内存中。尝试使用linecache.clearcache()删除不再需要的行。