Python错误:Python ValueError:关闭文件的I / O操作
我正在尝试代码
import random
with open("GoneGirlSW.txt", "r") as f,open('trainData.txt','w') as trainFile,open('testData.txt','w') as testFile:
data = f.read().split('\n')
random.shuffle(data)
train_data = data[:50]
test_data = data[50:]
trainFile.write(str(train_data))
testFile.write(str(test_data))
但是它给出了错误
Traceback (most recent call last):
File "trainTest.py", line 9, in <module>
trainFile.write(str(train_data))
ValueError: I/O operation on closed file.
答案 0 :(得分:1)
很难知道,因为您的代码没有正确缩进。我假设这是因为你还不熟悉问题编辑。
while (!$result->EOF) {
$offerId=$result->fields[0];
$affId=$result->fields[1];
$status=$result->fields[2];
$deduction=$result->fields[3];
//Rest of your code....
$result->MoveNext(); // Moves to the next row
}
语句的目的是让您在已知的上下文中执行代码。在打开文件的情况下,它保证在缩进套件的末尾关闭文件。所以我猜你没有缩进最后两个语句,所以它们是with
所涵盖的代码的一部分。
答案 1 :(得分:0)
当with / as语句完成时,文件会自动关闭。在您的情况下,由于缺少缩进,with / as语句已完成立即。代码应为: 随机导入
with open("GoneGirlSW.txt", "r") as f,open('trainData.txt','w') as trainFile,open('testData.txt','w') as testFile:
data = f.read().split('\n')
random.shuffle(data)
train_data = data[:50]
test_data = data[50:]
trainFile.write(str(train_data))
testFile.write(str(test_data))
答案 2 :(得分:0)
with语句后的代码行应缩进