Data File Handling: Worksheet
Data File Handling: Worksheet
com
WORKSHEET
DATA FILE HANDLING
1 Give one difference between Text file and Binary File
Ans Text file contains EOL character at the end of every line, there is no such character
in binary file
2 Write a Python statement to open a text file “DATA.TXT” so that new contents can
be written on it.
Ans f = open(„DATA.TXT‟,‟w‟)
3 Write a Python statement to open a text file “DATA.TXT” so that new content can be
added to the end of file
Ans f = open(„DATA.TXT‟,‟a‟)
4 Write a Python statement to open a text file “DATA.TXT” so that existing contents
can be read from file.
Ans f = open(„DATA.TXT‟)
5 A file “MYDATA.TXT” is opened as
file1 = open(“MYDATA.TXT”)
Write a Python statement to close this file.
Ans file1.close()
6 What is the different in file opening mode “a” and “w” ?
Ans “w” is used to write in file from the beginning. If file already exists then it will
overwrite the previous content.
“a” (append – add at the end ) is also used to write in file. If file already exists it will
write after the previous content i.e. it will not overwrite the previous content and
add new content after the existing content.
6 What is the significance of adding „+‟ with file opening mode, with context to „r+‟ ?
Ans “+” is used to add alternate action with specified mode i.e. if used with “r” as “r+” it
means it will allows to read and alternate action write.
7 What is the difference between readline() and readlines() ?
Ans readline() allows to read single line from file and return the content as string.
readlines() function will read all the lines from file and return it as a List of
lines/string.
8 What is the purpose of using flush() in file handling operations ?
Ans When we are writing data in file the content will be stored in file only when we close
the file. Before closing the file i.e. during the operations fill will be created but the
content will be in buffer not in file and when we close the file content will be shifted
to file from buffer.
flush() allows the user to send content in file before closing the file. It means when
flush() is used it will clear the buffer and transfer content to file.
9 What is the advantage of opening file using „with‟ keyword?
Ans With keyword reduces the overheads involve in file handling operations like closing
the file after operation or handling the file closing with exceptions. When file is
opened using “with” it will manage these things i.e. file will be automatically closed
after operations. It ensures the closing of file even if exceptions arises.
10 Considering the content stored in file “CORONA.TXT”
O Corona O Corona
Jaldi se tum Go na
Social Distancing ka palan karona
sabse 1 meter ki duri rakhona
Lockdown me ghar me ho to
Online padhai karona
1|Page
www.python4csip.com
2|Page
www.python4csip.com
15 Write a function in python to read lines from file “POEM.txt” and count how many
times the word “Corona” exists in file.
For e.g. if the content of file is :
O Corona O Corona
Jaldi se tum Go na
Social Distancing ka palan karona
sabse 1 meter ki duri rakhona
Lockdown me ghar me ho to
online padhai karona
O Corona O Corona
Jaldi se tum Go na
Output should be: Number of time word Corona occurs : 4
Ans Solution 1:
def CoronaCount():
f = open('poem.txt')
count = 0
for line in f:
words = line.lower().split()
count += words.count('corona')
print("Number of time words Corona occurs: ",count)
Solution 2:
def CoronaCount():
f = open('poem.txt')
count = 0
for line in f:
words = line.split()
for w in words:
if w.lower()=='corona':
count+=1
print("Number of time words Corona occurs: ",count)
16 Write a function in python to read lines from file “POEM.txt” and display all those
words, which has two characters in it.
For e.g. if the content of file is
O Corona O Corona
Jaldi se tum Go na
Social Distancing ka palan karona
sabse 1 meter ki duri rakhona
Lockdown me ghar me ho to
online padhai karona
O Corona O Corona
Jaldi se tum Go na
Output should be : se Go na ka ki me me ho to se Go na
Ans def TwoCharWord():
f = open('poem.txt')
count = 0
for line in f:
words = line.split()
for w in words:
if len(w)==2:
print(w,end=' ')
17 Write a function COUNT() in Python to read contents from file “REPEATED.TXT”, to
count and display the occurrence of the word “Catholic” or “mother”.
For example:
If the content of the file is “Nory was a Catholic because her mother was a Catholic , and
Nory‟s mother was a Catholic because her father was a Catholic , and her father was a
Catholic because his mother was a Catholic , or had been
3|Page
www.python4csip.com
O Corona O Corona
Jaldi se tum Go na
Social Distancing ka palan karona
Sabse 1 meter ki duri rakhona
Lockdown me ghar me ho to
online padhai karona
O Corona O Corona
Jaldi se tum Go na
The function should display:
Social Distancing ka palan karona
Sabse 1 meter ki duri rakhona
Ans def dispS():
f = open('poem.txt')
count = 0
for line in f:
if line[0].lower()=='s':
print(line)
19 Write a function COUNTSIZE() in Python to read the file “POEM.TXT” and display
size of file. For e.g. if the content of file is :
O Corona O Corona
Jaldi se tum Go na
Social Distancing ka palan karona
sabse 1 meter ki duri rakhona
Lockdown me ghar me ho to
online padhai karona
O Corona O Corona
Jaldi se tum Go na
The function should display
Size of file is 184
Ans def COUNTSIZE():
f = open('poem.txt')
s = f.read()
print(„Size of file is „,len(s))
20 Write a python function ATOEDISP() for each requirement in Python to read the file
“NEWS.TXT” and
(I) Display “E” in place of all the occurrence of “A” in the word COMPUTER.
(II) Display “E” in place of all the occurrence of “A”:
I SELL COMPUTARS. I HAVE A COMPUTAR. I NEED A COMPUTAR. I WANT A
COMPUTAR. I USE THAT COMPUTAR. MY COMPUTAR CRASHED.
The function should display
4|Page
www.python4csip.com
Ans f.write(str.encode())
7 ________ function is used to fetch binary data from binary file
Ans
8 ________ function is used to convert binary string to string
Ans read() and load()
9 ________ function is used in binary mode to send the read pointer to desired
position
Ans seek()
5|Page
www.python4csip.com
10 Consider a binary file which stores Name of employee, where each name
occupies 20 bytes (length of each name) in file irrespective of actual
characters. Now you have to write code to access the first name, 5th name and
last name.
f = open("Emp.txt","rb")
s = ________ #code to get first record
print(s.decode())
___________ # code to position at 5th record
s = f.read(size)
print(s.decode())
___________ # code to position at last record
s = f.read(20)
print(s.decode())
f.close()
Ans f.read(20)
f.seek((5-1)*20)
f.read(((os.path.getsize(„Emp.txt‟)/20)-1)
11 Write a Python statement to reposition the read pointer to 20 bytes back
from the current position.
f = open("Emp.txt","rb")
f.read(20)
f.read(20)
f.read(20)
f.___________ # reposition read pointer to previous record
f.close()
Ans f.seek(-20,1)
12 Write a function RECCOUNT() to read the content of binary file „NAMES.DAT‟
and display number of records ( each name occupies 20 bytes in file ) in it.
For. e.g. if the content of file is:
SACHIN
AMIT
AMAN
SUSHIL
DEEPAK
HARI SHANKER
Function should display
Total Records are 6
Ans import os
def RECCOUNT():
size_of_rec = 20 #Each name will occupy 20 bytes
file_len = os.path.getsize('Names.dat')
num_record = file_len/size_of_rec
print("Total Records are :",num_record)
13 Write a function SCOUNT() to read the content of binary file „NAMES.DAT‟ and
display number of records (each name occupies 20 bytes in file ) where name
begins from „S‟ in it.
6|Page
www.python4csip.com
7|Page
www.python4csip.com
Ans sys
23 From the given path identify the type of each:
(i) C:\mydata\web\resources\img.jpg
(ii) ..\web\data.conf
Ans (i) Absolute
(ii) Relative
24 Consider the following Binary file „Emp.txt‟, Write a function RECSHOW() to
display only those records who are earning more than 7000
if found==False:
print("## SORRY EMPLOYEE NUMBER NOT FOUND ##")
f.close()
24 CSV stands for _______________________
Ans Comma Separate Value
25 __________ object is used to read data from csv file?
Ans reader
26 __________ object is used to perform write operation on csv file.
Ans writer
27 __________ function of writer object is used to send data to csv file to store.
Ans writerow()
28 Consider the following CSV file (emp.csv):
1,Peter,3500
2,Scott,4000
3,Harry,5000
4,Michael,2500
5,Sam,4200
Write Python function DISPEMP() to read the content of file emp.csv and display
only those records where salary is 4000 or above
8|Page
www.python4csip.com
Write a Python function DISPEMP() to read the content of file emp.csv and count
how many employee are earning less than 5000
Ans import csv
def DISPEMP():
with open('emp.csv') as csvfile:
myreader = csv.reader(csvfile,delimiter=',')
count=0
print("%10s"%"EMPNO","%20s"%"EMP NAME","%10s"%"SALARY")
print("==================================================")
for row in myreader:
if int(row[2])<5000:
count+=1
print("==================================================")
print("%40s"%"#EMPLOYEE GETTING SALARY <5000 :",count)
print("==================================================")
30 Consider the following CSV file (emp.csv):
1,Peter,3500
2,Scott,4000
3,Harry,5000
4,Michael,2500
5,Sam,4200
Write a Python function SNAMES() to read the content of file emp.csv and display
the employee record whose name begins from „S‟ also show no. of employee with
first letter „S‟ out of total record.
Output should be:
2,Scott,4000
5,Sam,4200
Number of „S‟ names are 2/5
Ans import csv
def SNAMES():
with open('emp.csv') as csvfile:
myreader = csv.reader(csvfile,delimiter=',')
count_rec=0
count_s=0
for row in myreader:
9|Page
www.python4csip.com
if row[1][0].lower()=='s':
print(row[0],',',row[1],',',row[2])
count_s+=1
count_rec+=1
print("Number of 'S' names are ",count_s,"/",count_rec)
31 Write a python function CSVCOPY() to take sourcefile, targetfile as parameter
and create a targetfile and copy the contents of sourcefile to targetfile
Ans import csv
def CSVCOPY(sourcefile,targetfile):
with open(sourcefile) as csvfile:
f2 = open(targetfile,'w')
mywriter=csv.writer(f2,delimiter=',')
myreader = csv.reader(csvfile,delimiter=',')
for row in myreader:
mywriter.writerow([row[0],row[1],row[2]])
f2.close()
10 | P a g e