考虑到我对编码的理解有限,当我执行我的代码时,它会说未定义的变量&csv' (在底线)。有人可以解决/解释这个问题吗?谢谢!
def enterstudentdetails():
#user is prompted to input all the required fields
print("Enter id")
id=input()
print("Enter first name")
firstname=input()
print("Enter surname")
surname=input()
print("Enter Date of Birth Format: dd/mm/yy")
dob=input()
print("Enter first line of address")
firstlineaddress=input()
print("Enter Postcode")
postcode=input()
print("Enter Gender")
gender=input()
print("Enter Tutor Group")
tutorgroup=input()
print("Enter email address")
email=input()
with open('studentfile.txt','a') as studentfile:
studentfileWriter=csv.writer(studentfile)
答案 0 :(得分:2)
可能您忘记导入 csv 模块:https://docs.python.org/2/tutorial/modules.html
如果你退出Python解释器并再次输入,那么 您所做的定义(函数和变量)将丢失。 因此,如果你想写一个更长的程序,你就是 最好使用文本编辑器来准备输入 解释器并以该文件作为输入运行它。这是 称为创建脚本。随着你的程序变得越来越长,你可能想要 将其拆分为多个文件以便于维护。你也可以 想要使用你在几个程序中编写的方便功能 不将其定义复制到每个程序中。
为了支持这一点,Python可以将定义放在文件中并使用 它们在脚本或解释器的交互式实例中。 这样的文件叫做模块;模块中的定义可以是 导入到其他模块或主模块(集合) 您在顶部执行的脚本中可以访问的变量 水平和计算器模式)。
在文件开头添加:
import csv
答案 1 :(得分:0)
只需在程序开头导入csv即可。
import csv
请阅读csv writer的文档以进一步了解: -
链接:https://docs.python.org/2/library/csv.html
csv.writer(csvfile, dialect='excel', **fmtparams)
返回一个writer对象,负责将用户的数据转换为给定的类文件对象上的分隔字符串。 csvfile
可以是write()
方法的任何对象。如果csvfile
是一个文件对象,则必须在平台上使用b
标志打开它,这会产生影响。
可以给出一个可选的dialect参数,用于定义特定于CSV方言的一组参数。
它可能是Dialect
类的子类的实例,也可能是list_dialects()
函数返回的字符串之一。
可以给出其他可选的fmtparams
关键字参数来覆盖当前方言中的各个格式参数。