文件打开时Python函数冻结

时间:2015-11-28 17:59:16

标签: python

我有一个函数,用于计算字典中每个键出现在文件列表中的次数(list_of_docs)。

def calc(dictionary):
  for token in dictionary:
    count = 0
    for files in list_of_docs:
      current_file = open(files.name, 'r')
      text = current_file.read()
      line = text.split()
      if token in line:
        count +=1
  return count

当我调用此函数时,它不会停止。当我中断程序时,它表示它卡在行line = text.split()上。 (如果我删除该行,它会卡在text = current_doc.read()上。)不确定程序为什么不停止?

1 个答案:

答案 0 :(得分:0)

您没有关闭文件,请在阅读完毕后致电current_file.close()。或者,您可以将文件读取包装在with语句中:

with open(current_file, 'r') as f:
    f.read()
    ...