未定义的变量' csv'

时间:2017-10-25 19:15:49

标签: python

考虑到我对编码的理解有限,当我执行我的代码时,它会说未定义的变量&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)

2 个答案:

答案 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关键字参数来覆盖当前方言中的各个格式参数。