为何会触发ValueError: I/O operation on closed file错误?
错误原因分析:
ValueError: I/O operation on closed file: comparison between files not lists 你的代码触发这个错误主要有三个核心问题:
文件对象已被自动关闭
你用with open(...) as f1/f2的方式打开文件,with代码块执行结束后,Python会自动关闭对应的文件对象。当你在with块外尝试使用f1、f2(比如if f1 == f2或者for element in f1)时,这些文件对象已经处于关闭状态,任何对它们的I/O操作都会触发I/O operation on closed file错误。错误地比较文件对象而非内容
代码里的打印信息提到要比较"lists l1 and l3",但实际你在比较的是文件对象f1和f2——这两个是文件句柄,不是文件内容。你真正应该比较的是已经读取到的contents1和contents2(如果你的需求是对比文件内容的话)。变量名与逻辑完全不匹配
打印语句里写的是"The lists l1 and l3 are the same",但你的代码里根本没有定义l1、l3这两个变量,逻辑和变量名对应错误,进一步导致代码意图混乱。
另外,后面的for element in f1循环同样是在操作已关闭的文件对象,这也会触发相同类型的错误。
内容的提问来源于stack exchange,提问作者Athon
相关产品推荐
相关产品推荐

