如何修复对已关闭文件的 I/O 操作?

How to fix I/O operation on closed file?

我有以下代码:

with open("Berry2019_Table1.txt", "r") as datafile:
    print (datafile.read().split()[11::4])

mass = datafile.read().split()[11::4]

它给我I/O操作错误。我正在尝试将值列表放入一个变量中,那么我应该如何解决这个问题呢?提前致谢。

缩进。 您的“mass = datafile.read...”应该在“with open(...”内,因为您正试图从 withas 语句中调用数据文件。

进行如下操作:

with open("Berry2019_Table1.txt", "r") as datafile:
    print (datafile.read().split()[11::4])
    mass = datafile.read().split()[11::4]

with 区块之外 datafile 将被关闭,因此您将无法访问它...

您正在尝试调用 loop 之外的文件,因为您正在使用 with,您应该使用 loop 执行所有操作。所以,改为使用:

with open("Berry2019_Table1.txt", "r") as datafile:
    print (datafile.read().split()[11::4])

    mass = datafile.read().split()[11::4]