第二次迭代后将跳过条件检查

时间:2018-10-02 11:57:51

标签: python csv if-statement while-loop

此处的Python初学者想了解下面我的代码段是怎么回事?我想从CSV文件中读取,并对照该文件检查用户的输入。如果CSV中存在用户输入的学生ID,程序将开始打印属于学生ID的所有现有信息。

CSV文件的内容如下

first_name,last_name,student_id,Math,Science,English,Art 
Peter,Tan,S1012342D,89,67,54,78
John,Lim,S1014322H,87,78,86,67
Ada,Ang,S1023456I,54,78,65,54

当前,如果我在第一次启动该程序时输入正确的ID,那么到目前为止一切正常,所有输出都将输出。 但是,当我故意输入错误的输入并随后输入正确的输入时,它无法读取正确的输入,并且我的内容输出没有出现。

我正在处理的代码如下
enter image description here 希望有人能指出我在做什么错或误解。

1 个答案:

答案 0 :(得分:0)

csv.DictReader返回一个迭代器,因此,如果通过迭代它来耗尽它,则不重置文件位置就无法再次对其进行迭代。

更改:

if(check == False):

收件人:

if(check == False):
    csvfile.seek(0)
    next(reader) # skip the header