Skip to main content

GRADE XII - Binary File Manipulation (Dictionary)

 

Binary File Manipulation (Dictionary)

import pickle

from os import remove, rename

 

def Create():

    with open("emp.dat", "wb") as File:

        while True:

            Eno = int(input("Eno: "))

            Name = input("Name: ")

            Sal = float(input("Salary: "))

            Dept = input("Department: ")

            Emp = {"Eno": Eno, "Name": Name, "Sal": Sal, "Dept": Dept}

            pickle.dump(Emp, File)

            Ans = input("More (Y/N)? ")

            if Ans in 'nN':

                break

 

def Disp():

    try:

        with open("emp.dat", "rb") as File:

            while True:

                Emp = pickle.load(File)

                print(Emp)

    except EOFError:

        pass

    except FileNotFoundError:

        print("File not found.")

    except Exception as e:

        print("An error occurred:", e)

 

 

def searcheno():

    Seno = int(input("Enter Employee no to search - "))

    found = False

    try:

        with open("emp.dat", "rb") as File:

            while True:

                Emp = pickle.load(File)

                if Emp["Eno"] == Seno:

                    print("Record Found:", Emp)

                    found = True

                    break

    except EOFError:

        if not found:

            print("No such Record Found")

    except FileNotFoundError:

        print("File not found.")


def searchenm():

    Senm = input("Enter Employee name to search - ")

    found = "n"

    try:

        with open("emp.dat", "rb") as File:

            while True:

                Emp = pickle.load(File)

                if Emp["Name"] == Senm:

                    print(Emp)

                    found = "y"

    except EOFError:

        pass

   

    if found == "n":

        print("No such Record Found")

 

import pickle

 

def CountDept():

    ctr = 0

    Sdept = input("Enter Department - ")

    try:

        with open("emp.dat", "rb") as File:

            while True:

                Emp = pickle.load(File)

                if Emp["Dept"] == Sdept:

                    print(Emp)

                    ctr += 1

    except EOFError:

        pass

 

    print("No. of Employees in", Sdept, "-", ctr)

 

def Countsal():

    ctr = 0

    try:

        with open("emp.dat", "rb") as File:

            while True:

                Emp = pickle.load(File)

                if Emp["Sal"] > 6000:

                    # print(Emp)  # Uncomment if you want to display each employee

                    ctr += 1

    except EOFError:

        pass

    print("No. of employees with Salary > 6000 -", ctr)

 

def highestsal():

    try:

        with open("emp.dat", "rb") as file:

            # Read the first record to initialize highest salary

            Emprec = pickle.load(file)

            hsal = Emprec["Sal"]

 

            # Read remaining records

            while True:

                Emprec = pickle.load(file)

                if Emprec["Sal"] > hsal:

                    hsal = Emprec["Sal"]

    except EOFError:

        print("Highest Salary -", hsal)

    except FileNotFoundError:

        print("File not found.")

    except Exception as e:

        print("Error:", e)

 

def EditOnEmpno():

    file = open("emp.dat", "rb")

    tempfile = open("temp.dat", "wb")

    found = "n"

    Seno = int(input("Enter Employee no to Edit - "))

     try:

        while True:

            Emp = pickle.load(file)

            if Emp["Eno"] == Seno:

                eno = Emp["Eno"]

                Name = input("Edited Name: ")

                Sal = float(input("Edited Salary: "))

                Dept = input("Edited Department: ")

                Empnew = {"Eno": eno, "Name": Name, "Sal": Sal, "Dept": Dept}

                found = "y"

                pickle.dump(Empnew, tempfile)

            else:

                pickle.dump(Emp, tempfile)

    except EOFError:

        file.close()

        tempfile.close()

 

    if found == "n":

        print("No such record")

        remove("temp.dat")

    else:

        remove("emp.dat")

        rename("temp.dat", "emp.dat")

        print("Record updated successfully.")

 

def Editname():

    file = open("emp.dat", "rb")

    tempfile = open("temp.dat", "wb")

    found = "n"

    nm = input("Enter Employee name to Edit - ")

    try:

        while True:

            Emp = pickle.load(file)

            if Emp["Name"] == nm:

                eno = Emp["Eno"]

                Name = input("Edited Name: ")

                Sal = float(input("Edited Salary: "))

                Dept = input("Edited Department: ")

                Empnew = {"Eno": eno, "Name": Name, "Sal": Sal, "Dept": Dept}

                found = "y"

                pickle.dump(Empnew, tempfile)

            else:

                pickle.dump(Emp, tempfile)

    except EOFError:

        file.close()

        tempfile.close()

 

    if found == "n":

        print("No such record")

        remove("temp.dat")

    else:

        remove("emp.dat")

        rename("temp.dat", "emp.dat")

        print("Record updated successfully.")

 

def EditOnrecno():

    file = open("emp.dat", "rb")

    tempfile = open("temp.dat", "wb")

    found = "n"

    n = int(input("Enter record no to Edit - "))  # record number starts from 1

    rec = 1  # record counter

   

    try:

        while True:

            Emp = pickle.load(file)

            if rec == n:

                eno = Emp["Eno"]

                Name = input("Edited Name: ")

                Sal = float(input("Edited Salary: "))

                Dept = Emp["Dept"] 

                Empnew = {"Eno": eno, "Name": Name, "Sal": Sal, "Dept": Dept}

                found = "y"

                pickle.dump(Empnew, tempfile)

            else:

                pickle.dump(Emp, tempfile)

            rec += 1

    except EOFError:

        file.close()

        tempfile.close()

 

    if found == "n":

        print("No such record")

        remove("temp.dat")

    else:

        remove("emp.dat")

        rename("temp.dat", "emp.dat")

        print("Record updated successfully.")

 

def EditOndept():

    file = open("emp.dat", "rb")

    tempfile = open("temp.dat", "wb")

    found = "n"

   

    Sdept = input("Enter record no to Edit - ") 

    rec = 1 

 

    try:

        while True:

            Emp = pickle.load(file)

            if Emp["Dept"] == Sdept:

                eno = Emp["Eno"]

                Name = input(" Edited Name :")

                Sal = float(input(" Edited Salary:"))

                Dept = input("Edited Department :")

                Empnew = {"Eno": eno, "Name": Name, "Sal": Sal, "Dept": Dept}

                found = "y"

                pickle.dump(Empnew, tempfile)

            else:

                pickle.dump(Emp, tempfile)

            rec += 1 

    except EOFError:

        file.close()

        tempfile.close()

 

    if found == "n":

        print("No such record")

        remove('temp.dat')

    else:

        remove('emp.dat')

        rename('temp.dat', 'emp.dat')

        print("Record updated successfully.")

while True:

    CH = input(

        "1. Create\n"

        "2. Display\n"

        "3. Search by Emp No\n"

        "4. Search by Emp Name\n"

        "5. Count Records of a Given Department\n"

        "6. Modify by Emp No\n"

        "7. Display Highest Salary\n"

        "8. Quit\n"

        "Enter your choice (1-8): "

    )

 

    if CH == '1':

        Create()

    elif CH == '2':

        Disp()

    elif CH == '3':

        searcheno()

    elif CH == '4':

        searchenm()

    elif CH == '5':

        CountDept()

    elif CH == '6':

        EditOnEmpno()

    elif CH == '7':

        highestsal()

    elif CH == '8':

        break

    else:

        print("Invalid choice. Please enter a number between 1 and 8.")


Comments

Popular posts from this blog

PYTHON - MYSQL CONNECTIVITY CODE

  #INSERTION OF DATA import mysql.connector mydb = mysql.connector.connect( host="localhost", user="root", passwd="root", database="school" ) print("Successfully Connected") #print(mydb) mycursor=mydb.cursor()   v1=int(input("enter ID:")) v2=input("enter name:") v3=input("enter Gender:") v4=int(input("enter age:")) sql='insert into TEACH values("%d","%s","%s","%s")'%(v1,v2,v3,v4) print(sql) mycursor.execute(sql) mydb.commit() print("record added") #MYSQL Connection code – Deletion on database SOURCE CODE: s=int(input("enter id of TEACHER to be deleted:")) r=(s,) v="delete from TEACH where id=%s" mycursor.execute(v,r) mydb.commit() print("record deleted") MYSQL Connection code – Updation on database SOURCE CODE: import mysql.connector mydb = mysql.connector.c...

GRADE XII CS - VIVA QUESTIONS

  VIVA QUESTIONS GRADE XII CS Dear All Be thorough with your project and practical files, as the viva can be asked from anywhere. Stay calm, don’t get nervous, and be confident in front of the examiner. 1. Tell me about your project. 2. Which concepts you have used for your project? 3. What do you mean by front end and back end? How they are important in developing any such projects? 4  Mention the modules and built-in functions you have used in your project. 5. Which real world problems are solved by your project? 6. Explain the most important feature of your project. 7. Name a few mutable data types of python. Lists, Sets, and Dictionaries 8. Name a few immutable data types of python. Strings, Tuples, Numeric 9. Name ordered and unordered data type of python. Ordered – String, List, Tuples Unordred – Set, Dictionaries 10. What is the significance of a pass statement in python? pass is no operation python statement. This is used where python requires syntax but logic requires...