Untitled
import sys FILE_NAME = "students.cve" def load_data(): try: with open(FILE_NAME, "r") as file: return file.readlines() except (FileNotFoundError): return [] def save_data(data): f = open(FILE_NAME, "w") f.write("\n".join(data)) f.close() def add_student(student_id, name, surname, gpa): data = load_data() data.append(student_id + "," + name + "," + surname + "," + gpa) save_data(data) print("Student added successfully.") def delete_student(student_id): data = load_data() updated_data = [] for student in data: if student.split(",")[0] != student_id: updated_data.append(student) save_data(updated_data) print("Student deleted successfully.") def update_student(student_id, name=None, surname=None, gpa=None): data = load_data() student_old = None student_new = None for student in data: data_student = student.split(",") data_student_id = data_student[0] data_student_name = data_student[1] data_student_surname = data_student[2] data_student_gpa = data_student[3] if data_student_id == student_id: if name: data_student_name = name if surname: data_student_surname = surname if gpa: data_student_gpa = gpa student = data_student_id + "," + data_student_name + "," + data_student_surname + "," + data_student_gpa break save_data(data) print("Student updated successfully.") def search_by_id(student_id): data = load_data() for student in data: if student.split(",")[0] == student_id: print(student) return print("Student not found.") def search_by_name_surname(name, surname): data = load_data() for student in data: if student.split(",")[1] and student.split(",")[2] == surname: print(student) return print("Student not found.") def display_all_students(): data = load_data() if not data: print("No students available.") return total_gpa = 0 for student in data: print(student) total_gpa += float(student.split()[3]) average_gpa = total_gpa / len(data) print(f"\nAverage GPA of all students: {average_gpa:.2f}") if __name__ == "__main__": if len(sys.argv) < 2: print("Usage: python script.py <command> [arguments]") print("commands:") print("- add <id> <name> <surname> <gpa> (Adds student to the file)") print("- update <id> <name> <surname> <gpa> (Updates student's information by their ID)") print("- search_by_id <id> (Finds student by their ID)") print("- search_by_name <name> <surname> (Finds student by their name & surname)") print("- delete <id> (Deletes student from file based on their ID)") print("- list (Lists all students)") sys.exit(1) command = sys.argv[1].lower() if command == "add": if len(sys.argv) != 6: print("Usage: python script.py add <id> <name> <surname> <gpa>") else: _, _, student_id, name, surname, gpa = sys.argv add_student(student_id, name, surname, gpa) elif command == "delete": if len(sys.argv) != 3: print("Usage: python script.py delete <id>") else: _, _, student_id = sys.argv delete_student(student_id) elif command == "update": if len(sys.argv) < 3: print("Usage: python script.py update <id> [name] [surname] [gpa]") else: student_id = sys.argv[2] name = sys.argv[3] if len(sys.argv) > 3 else None surname = sys.argv[4] if len(sys.argv) > 4 else None gpa = sys.argv[5] if len(sys.argv) > 5 else None update_student(student_id, name, surname, gpa) elif command == "search_by_id": if len(sys.argv) != 3: print("Usage: python script.py search_by_id <id>") else: _, _, student_id = sys.argv search_by_id(student_id) elif command == "search_by_name": if len(sys.argv) != 4: print("Usage: python script.py search_by_name <name> <surname>") else: _, _, name, surname = sys.argv search_by_name_surname(name, surname) elif command == "list": display_all_students() else: print("Invalid command. Available commands: add, delete, update, search_by_id, search_by_name, list.")
Leave a Comment