set best to the record for the first student in the file best makestudent(infile readline()process subsequent lines of the file for line in infileturn the line into student record makestudent(lineif this student is best so farremember it if gpa(best gpa()best infile close(print information about the best student print("the best student is:"best getname()print("hours:"best gethours()print("gpa:"best gpa()if __name__ ='__main__'main(you will notice that added helper function called makestudent this function takes single line of the filesplits it into its three tab-separated fieldsand returns corresponding student object right before the loopthis function is used to create record for the first student in the filebest makestudent(infile readline()it is called again inside the loop to process each subsequent line of the file makestudent(linehere' how it looks running the program on the sample data enter name the grade filestudents dat the best student iscomputewellsusan hours gpa one unresolved issue with this program is that it only reports back single student if there multiple students tied for the best gpaonly the first one found is reported leave it as an interesting design issue for you to modify the program so that it reports all students having the highest gpa