hi i keep geting an erorr when i want to view the information import csv # Define global variables student_fields = [ 'ID', 'name', 'courses', 'absences', 'm1', 'm2', 'm3', 'total' ] student_database = 'students.csv' def display_menu(): print("--------------------------------------") print(" Welcome to Student Management System") print("---------------------------------------") print("1. Add New Student") print("2. View Students") print("3. Search Student by iD") print("4. Search Student by courses") print("5. Delete Student") print("6. Quit") def add_student(): print("-------------------------") print("Add Student Information") print("-------------------------") global student_fields global student_database student_data = [] for field in student_fields: value = input("Enter " + field + ": ") student_data.append(value) with open(student_database, "a", encoding="utf-8") as f: writer = csv.writer(f) writer.writerows([student_data]) print("Data saved successfully") input("Press any key to continue") return def view_students(): global student_fields global student_database print("--- Student Records ---") with open(student_database, "r", encoding="utf-8") as f: reader = csv.reader(f) for x in student_fields: print(x, end='\t |') print( "\n-----------------------------------------------------------------" ) for row in reader: for item in row: print(item, end="\t |") print("\t ") input("Press any key to continue") def search_student_ID(): global student_fields global student_database print("--- Search Student ---") ID = input("Enter ID no. to search: ") with open(student_database, "r", encoding="utf-8") as f: reader = csv.reader(f) for row in reader: if len(row) > 0: if ID == row[0]: print("----- Student Found -----") print("ID: ", row[0]) print("Name: ", row[1]) print("courses: ", row[2]) print("absences: ", row[3]) print("m1: ", row[4]) print("m2: ", row[5]) print("m3: ", row[6]) print("total: ", row[7]) break else: print("ID not found in our database") input("Press any key to continue") def search_student_courses(): global student_fields global student_database print("--- Search Student by courses ---") courses = input("Enter course to search: ") with open(student_database, "r", encoding="utf-8") as f: reader = csv.reader(f) for row in reader: if len(row) > 2: if courses == row[2]: print("----- Student Found -----") print("ID: ", row[0]) print("Name: ", row[1]) print("courses: ", row[2]) print("absences: ", row[3]) print("m1: ", row[4]) print("m2: ", row[5]) print("m3: ", row[6]) print("total: ", row[7]) break else: print("courses not found in our database") input("Press any key to continue") def delete_student(): global student_fields global student_database print("--- Delete Student ---") ID = input("Enter ID. to delete: ") student_found = False updated_data = [] with open(student_database, "r", encoding="utf-8") as f: reader = csv.reader(f) counter = 0 for row in reader: if len(row) > 0: if ID != row[0]: updated_data.append(row) counter += 1 else: student_found = True if student_found is True: with open(student_database, "w", encoding="utf-8") as f: writer = csv.writer(f) writer.writerows(updated_data) print("ID ", ID, "deleted successfully") else: print("ID not found in our database") input("Press any key to continue") while True: display_menu() choice = input("Enter your choice: ") if choice == '1': add_student() elif choice == '2': view_students() elif choice == '3': search_student_ID() elif choice == '4': search_student_courses() elif choice == '5': delete_student() else: break print("-------------------------------") print(" Thank you for using our system") print("-------------------------------")
hi i keep geting an erorr when i want to view the information
import csv
# Define global variables
student_fields = [
'ID', 'name', 'courses', 'absences', 'm1', 'm2', 'm3', 'total'
]
student_database = 'students.csv'
def display_menu():
print("--------------------------------------")
print(" Welcome to Student Management System")
print("---------------------------------------")
print("1. Add New Student")
print("2. View Students")
print("3. Search Student by iD")
print("4. Search Student by courses")
print("5. Delete Student")
print("6. Quit")
def add_student():
print("-------------------------")
print("Add Student Information")
print("-------------------------")
global student_fields
global student_database
student_data = []
for field in student_fields:
value = input("Enter " + field + ": ")
student_data.append(value)
with open(student_database, "a", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerows([student_data])
print("Data saved successfully")
input("Press any key to continue")
return
def view_students():
global student_fields
global student_database
print("--- Student Records ---")
with open(student_database, "r", encoding="utf-8") as f:
reader = csv.reader(f)
for x in student_fields:
print(x, end='\t |')
print(
"\n-----------------------------------------------------------------"
)
for row in reader:
for item in row:
print(item, end="\t |")
print("\t ")
input("Press any key to continue")
def search_student_ID():
global student_fields
global student_database
print("--- Search Student ---")
ID = input("Enter ID no. to search: ")
with open(student_database, "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
if len(row) > 0:
if ID == row[0]:
print("----- Student Found -----")
print("ID: ", row[0])
print("Name: ", row[1])
print("courses: ", row[2])
print("absences: ", row[3])
print("m1: ", row[4])
print("m2: ", row[5])
print("m3: ", row[6])
print("total: ", row[7])
break
else:
print("ID not found in our
input("Press any key to continue")
def search_student_courses():
global student_fields
global student_database
print("--- Search Student by courses ---")
courses = input("Enter course to search: ")
with open(student_database, "r", encoding="utf-8") as f:
reader = csv.reader(f)
for row in reader:
if len(row) > 2:
if courses == row[2]:
print("----- Student Found -----")
print("ID: ", row[0])
print("Name: ", row[1])
print("courses: ", row[2])
print("absences: ", row[3])
print("m1: ", row[4])
print("m2: ", row[5])
print("m3: ", row[6])
print("total: ", row[7])
break
else:
print("courses not found in our database")
input("Press any key to continue")
def delete_student():
global student_fields
global student_database
print("--- Delete Student ---")
ID = input("Enter ID. to delete: ")
student_found = False
updated_data = []
with open(student_database, "r", encoding="utf-8") as f:
reader = csv.reader(f)
counter = 0
for row in reader:
if len(row) > 0:
if ID != row[0]:
updated_data.append(row)
counter += 1
else:
student_found = True
if student_found is True:
with open(student_database, "w", encoding="utf-8") as f:
writer = csv.writer(f)
writer.writerows(updated_data)
print("ID ", ID, "deleted successfully")
else:
print("ID not found in our database")
input("Press any key to continue")
while True:
display_menu()
choice = input("Enter your choice: ")
if choice == '1':
add_student()
elif choice == '2':
view_students()
elif choice == '3':
search_student_ID()
elif choice == '4':
search_student_courses()
elif choice == '5':
delete_student()
else:
break
print("-------------------------------")
print(" Thank you for using our system")
print("-------------------------------")
Step by step
Solved in 2 steps