我已多次看到这个问题,但它们都不能应用于我的代码,而且我的代码都没有意义。所以我很抱歉提出这个问题。
我编写了一个代码,将以前输入的数据写入csv文件。变量的名称称为文件,我有许多这些用于不同的输入。但是当我尝试关闭csv时,它会出现错误: NameError:name' file'未定义
以下是代码:
if classCode=="1":
file=open("class1.csv","w")
file.write("name, correct\n" + name + "," + str(correct) + "\n")
elif classCode=="2":
file=open("class2.csv","w")
file.write("name, correct\n" + name + "," + str(correct) + "\n")
elif classCode=="3":
file=open("class3.csv","w")
file.write("name, correct\n" + name + "," + str(correct) + "\n")
file.close()
我不知道为什么会这样说' file'当我清楚地拥有这三个时,并没有定义。我只是傻了吗?
答案 0 :(得分:1)
如果类代码不是1,2或3会发生什么。如果所有类代码都做同样的事情,你可以使文件名动态化,而不是多次重复代码。
class_file=open("class{}.csv".format(classCode),"w")
class_file.write("name, correct\n" + name + "," + str(correct) + "\n")
class_file.close()
答案 1 :(得分:0)
文件变量只会在classCode为“1”,“2”或“3”时声明,否则它将不会声明并且会出现错误。
你应该确保任何一个控制转到任何一个if语句,或者你应该在if语句之外声明这个变量。