2014-03-12 29 views
0

我使用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

MemoryError表示您的內存不足。您可能一次將所有文件加載到內存中。嘗試使用linecache.clearcache()刪除不再需要的行。