我读4个CSV文件到4个不同的对象到内存。前三次,它是有效的。。。。但第四次失败时,它说:ValueError:I/O操作在关闭的文件上
我导入这些:import sys
import time
import random
import csv
import ast
这是我的代码:
^{pr2}$
下一节失败了:print "loading '"+str(csvPath)+str(MoveType)+"' into Memory"
open(str(csvPath)+str(MoveType)) as fpReader:
#fpReader = open(str(csvPath)+str(MoveType))
cr = csv.reader(fpReader)
counter = 0
for row in cr:
if(counter==0):
counter+=1
continue
Moves[row[0]] = {"typeObject":row[1],"baseLevel":row[2], "baseAttack":row[3],"baseAccuracy":row[4],"targetsOpponent":row[5],"primaryStatObject":row[6],"spriteSheetName":row[7],"statusEffects":row[8],"uuid":row[9]}
fpReader.close()
它关闭fpReader,然后打开一个新的fpReader,并将其读入cr中。我看不出文件将在何处关闭。在
新代码with open(str(csvPath)+str(StatusType)) as fpReader:
#fpReader = open(str(csvPath)+str(StatusType))
cr = csv.reader(fpReader)
counter = 0
for row in cr:
if(counter == 0):
counter+=1
continue
Statuses[row[0]] = {"tar":row[1],"tarVal":row[2],"tarValChange":row[3],"needsTarget":row[4], "tarChanges":row[5], "conditionType":row[6], "uuid":row[7]}
fpReader.close()
它在线路上失败:for row in cr:
说:Traceback (most recent call last):
File "battleSystem.py", line 312, in
main(sys.argv[1:])
File "battleSystem.py", line 22, in main
LoadCSVs()
File "battleSystem.py", line 62, in LoadCSVs
for row in cr:
ValueError: I/O operation on closed file