ValueError: 关闭文件上的 I/O 操作,flush()

时间:2021-07-14 08:28:42

标签: python text nlp valueerror

我有来自 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()

1 个答案:

答案 0 :(得分:0)

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

相关问题