You are on page 1of 8

BINARY FILE OPERATIONS:

Q1. A binary file “Book.dat” has structure [BookNo, Book_Name, Author,


Price].

1. Write a user defined function CreateFile() to input data for a record and add
to Book.dat .
2. Write a function CountRec(Author) in Python which accepts the Author
name as parameter and count and return number of books by the given
Author are stored in the binary file “Book.dat
import pickle
def createfile():
fobj=open("Book.dat","ab")
BookNo=int(input("Enter Book Number : "))
Book_name=input("Enter book Name :")
Author = input("Enter Author name: ")
Price = int(input("Price of book : "))
rec=[BookNo, Book_name ,Author, Price]
pickle.dump(rec, fobj)
fobj.close()

createfile() # This fn is called just to verify result and not required in exam

def countrec(Author):
fobj=open("Book.dat", "rb")
num = 0
try:
while True:
rec=pickle.load(fobj)
if Author==rec[2]:
num = num + 1
print(rec[0],rec[1],rec[2],rec[3])
except:
fobj.close()
return num

n=countrec("amit") # This fn is called just to verify result and not required in exam
print("Total records", n) # This stt is just to verify result and not required in exam
Q2. A binary file “STUDENT.DAT” has structure [admission_number, Name,
Percentage]. Write a function countrec() in Python that would read contents of the
file “STUDENT.DAT” and display the details of those students whose percentage
is above 75. Also display number of students scoring above 75%.

import pickle
def countrec():
fobj=open("student.dat","rb")
num = 0
try:
while True:
rec=pickle.load(fobj)
if rec[2]>75:
num = num + 1
print(rec[0],rec[1],rec[2])
except:
fobj.close()
return num

Q3 Write a function in python to search and display details, whose destination is


“Cochin” from binary file “Bus.Dat”. Assuming the binary file is containing the
following elements in the list:
1. Bus Number 2.Bus Starting Point 3.Bus Destination
import pickle
def countrec():
fobj=open("bus.dat","rb")
num = 0
try:
while True:
rec=pickle.load(fobj)
if rec[2]=="Cochin" or rec[2]=="cochin":
num = num + 1
print(rec[0],rec[1],rec[2])
except:
fobj.close()
return num
n=countrec() # This function is called just to verify result
print(n)
Q4. Write a function addrec() in Python to add more new records at the bottom of a
binary file “STUDENT.dat”, assuming the binary file is containing the following
structure :
[Roll Number, Student Name]

import pickle
def addrec():
fobj=open("student.dat","ab")
rollno=int(input("Roll Number : "))
sname=input("Student Name :")
rec=[rollno,sname]
pickle.dump(rec,fobj)
fobj.close()
addrec()

Q5. Write a function searchprod( pc) in python to display the record of a particular
product from a file product.dat whose code is passed as an argument. Structure of
product contains the following elements
[product code , product price]

import pickle
def searchprod(pc):
fobj=open("product.dat","rb")
num = 0
try:
while True:
rec=pickle.load(fobj)
if rec[0]==pc:
print(rec)
except:
fobj.close()

n=searchprod(1) # This function is called to verify the result


Q6. Write a function routechange(route number) which takes the Route number as
parameter and modify the route name(Accept it from the user) of passed route
number in a binary file “route.dat”.

import pickle
def routechange(rno):
fobj=open("route.dat","rb")
try:
while True:
rec=pickle.load(fobj)
if rec[0]==rno:
rn=input("Enter route name to be changed ")
rec[1]=rn
print(rec) #This stt is called to verify the change in the record
except:
fobj.close()

routechange(1) # This function is called to verify the result

Q7. Write a function countrec(sport name) in Python which accepts the name of
sport as parameter and count and display the coach name of a sport which is passed
as argument from the binary file “sport.dat”. Structure of record in a file is given
below ——————– – [sport name, coach name]

def countrec(sn):
num=0
fobj=open("data.dat","rb")
try:
print("Sport Name","\t","Coach Name")
while True:
rec=pickle.load(fobj)
if rec[0]==sn:

print(rec[0],"\t\t",rec[1])
num=num+1
return num
except:
fobj.close()
Q8. A binary file “salary.DAT” has structure [employee id, employee name,
salary]. Write a function countrec() in Python that would read contents of the file
“salary.DAT” and display the details of those employee whose salary is above
20000.
def countrec():
num=0
fobj=open("data.dat","rb")
try:
print("Emp id\tEmp Name\tEmp Sal")
while True:
rec=pickle.load(fobj)
if rec[2]>20000:
print(rec[0],"\t\t",rec[1],"\t\t",rec[2])
except:
fobj.close()

countrec()# This function is called to verify the result

Q9. Amit is a monitor of class XII-A and he stored the record of all the students of
his class in a file named “class.dat”. Structure of record is [roll number, name,
percentage]. His computer teacher has assigned the following duty to Amit.Write a
function remcount( ) to count the number of students who need remedial class
(student who scored less than 40 percent)

def countrec():
fobj=open("data.dat","rb")
try:
print("Emp id\tEmp Name\tEmp Sal")
while True:
rec=pickle.load(fobj)
if rec[2]>20000:
print(rec[0],"\t\t",rec[1],"\t\t",rec[2])
except:
fobj.close()

countrec()# This function is called to verify the result


Q10. A binary file “emp.dat” has structure [employee id, employee name].
Write a function delrec(employee number) in Python that would read
contents of the file “emp.dat” and delete the details of those employee whose
employee number is passed as argument.
import pickle
import os
def delrec:
num=0
f=open(“data.dat”,”rb”)
ftemp=open(“temp.dat”,”wb”)
eid=int(input(“enter emp id”))
try:
while True:
rec=pickle.load(f)
if rec[0] == eid:
print(“Rec found”)
else:
pickle.dump(rec,ftemp)
except:
f.close()
delrec() # fn call
os.remove(“data.dat”)
os.rename(“temp.dat”,”data.dat”)

def display():
f= open(“data.dat”,”rb”)
try:
while True:
rec=pickle.load(f)
print(rec)
except f.close()
display() # fn call

11) Tarun is a Python programmer. He has written a code and created a binary file
“Teach.dat” with Teach_Id, Tname and Tsalary. The file contains 10 records. He now
has to update a record based on the employee Tid entered by the user and update the
salary. The updated record is then to be written in the file Temp.dat. The records which
are not to be updated also have to be written to the file Temp.dat. If the Teacher id is not
found, an appropriate message should to be displayed. As a Python expert, help him to
complete the following code based on the requirement given above:

import _______ # Line1 pickle


def update_rec():
rec={}
inf=open("Teach.dat","rb")
outf=open("_____________") #Line 2 ( “Temp.dat”,’wb’)
found=False
Tid=int(input("Enter Teacher id to update their salary))
while True:
try:
rec= pickle.load(inf)
if ________________________ #Line 3 if rec[“Teach_Id”== Tid]

found=True
rec["Tsalary"]=int(input("Enter new salary :: "))
pickle.____________ #Line 4 pickle.dump(rec,outf)

else:
pickle.dump(rec,outf)
except:
break
if found==True:
print("The salary of Teacher id ",Teach_Id," has been updated.")
else:
print("No employee with such id is not found")
inf.close()
outf.close()
(i) Which module should be imported in the program? (Line 1)
(ii) Write the correct statement required to open a temporary file named
Temp.dat.? (Line 2)
(iii) Which statement should Tarun fill in Line 3 to readand check the
Teach_Id with given Tid from the binary file Teach.dat
and in Line 4 to write the updated data in the file Temp.dat?
12) i. Write a user defined function CreateFile() to input data for a record and add to Book.dat .
ii). Write a function CountRec(Author) in Python which accepts the Author name as parameter
and count and return number of books by the given Author are stored in the binary file
“Book.dat”
import pickle
def createFile():
fobj=open("Book.dat","ab")
BookNo=int(input("Book Number : "))
Book_name=input("Name :")
Author = input(“Author: “)
Price = int(input("Price : "))
rec=[BookNo,Book_Name,Author,Price]
pickle.dump(rec,fobj)
fobj.close()
def CountRec(Author):
fobj=open("Book.dat","rb")
num = 0
try:
while True:
rec=pickle.load(fobj)
if Author==rec[2]:
num = num + 1
except:
fobj.close()
return num

13) A binary file “STUDENT.DAT” has structure (admission_number, Name,


Percentage). Write a function countrec() in Python that would read contents of the file
“STUDENT.DAT” and display the details of those students whose percentage is above
75. Also display number of students scoring above 75%
import pickle
def CountRec():
fobj=open("STUDENT.DAT","rb")
num = 0
try:
while True:
rec=pickle.load(fobj)
if rec[2] > 75:
print(rec[0],rec[1],rec[2],sep="\t")
num = num + 1
except:
fobj.close()
return num

You might also like