【问题标题】:ValueError: I/O operation on closed file, flush()ValueError:对已关闭文件的 I/O 操作,flush()
【发布时间】:2021-07-14 08:28:42
【问题描述】:

我现在正在尝试来自https://towardsdatascience.com/training-your-own-message-suggestions-model-using-deep-learning-3609c0057ba8 的这段代码。但是,我收到错误:target_similarity_matrix_file.flush() 上的“ValueError: I/O operation on closed file” 线。我该如何解决这个问题?我对 python 和 nlp 非常陌生,所以请温柔一点。我没有这方面的任何经验,所以我无法解决问题。

with open('target_similarity_matrix.txt', 'w') as target_similarity_matrix_file:
for i in tqdm(range(len(target_texts))):
    neighbor_index, distances = targetAnnoyIndex.get_nns_by_item(i, len(target_texts), include_distances=True)

    target_similarity_row = [-1] * len(target_texts)
    for index in range(len(neighbor_index)):
        j = neighbor_index[index]
        target_similarity_row[j] = distances[index]
    
    
    target_similarity_matrix_file.write(str(target_similarity_row))
    if i != len(target_texts) - 1:
        target_similarity_matrix_file.write("\n")
        

target_similarity_matrix_file.flush()
target_similarity_matrix_file.close()

【问题讨论】:

    标签: python text nlp valueerror


    【解决方案1】:

    “With”自动关闭并刷新文件,所以只需删除最后2行,文件已经关闭,您不需要刷新/关闭它。关闭已刷新文件,通常在您在操作系统缓存中有大量写入待处理并且您希望它们在文件系统上时使用文件上的刷新。

    【讨论】:

      猜你喜欢
      • 2013-09-27
      • 2016-07-21
      • 2015-07-20
      • 1970-01-01
      • 2018-12-18
      • 2016-08-26
      • 2016-06-13
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多