data file handling.docx
data file handling.docx
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.
f = open(“INDIA.TXT”)
for :
print( )
Ans for line in f :
print(line)
12 What is the difference in write() and writelines()?
Ans write() function is used to write single string in file whereas writelines() function allows to
write List of strings
13 Considering the content stored in file “WORLDCUP.TXT”, write the output
India won the Cricket world cup of 1983
f = open(“WORLDCUP.TXT”)
print(f.read(2))
print(f.read(2))
print(f.read(4))
Ans In
di
a wo
14 Write a function in python to count the number of lines in “INDIA.TXT” begins from Upper case
character.
For e.g
India is a country in South Asia.
It is second largest country in population and seventh largest country by land area.
It is also the most populous democracy in the world.
India has the fourth largest number of spoken languages per country in the world.
Its capital is New Delhi
Ans def UpperCase():
f = open('INDIA.TXT')
count = 0
for line in f:
if line[0].isupper():
count+=1
print("Lines starting from Capital letters: ",count)
15 Write a function in python to read lines from file “INDIA.TXT” and count how many times the word
“India” exists in file.
For e.g. if the content of file is :
India is a country in South Asia.
India is second largest country in population
It is the seventh largest country by land area.
India is also the most populous democracy in the world.
India has the fourth largest number of spoken languages per country in the world.
Its capital is New Delhi
Output should be: Number of time word INDIA occurs : 4
Ans Solution 1:
def INDIACount():
f = open('INDIA.TXT')
count = 0
for line in f:
words = line.lower().split() count
+= words.count('INDIA')
print("Number of time words INDIA occurs: ",count)
Solution 2:
def INDIACount():
f = open('INDIA.TXT')
count = 0
for line in f:
words = line.split()
for w in words:
if w.lower()=='INDIA':
count+=1
print("Number of time words INDIA occurs: ",count)
16 Write a function in python to read lines from file “INDIA.TXT” and display all those words, which
has two characters in it.
For e.g. if the content of file is India is a country in South Asia.
India is second largest country in population
It is the seventh largest country by land area.
India is also the most populous democracy in the world.
India has the fourth largest number of spoken languages per country in the world.
Its capital is New Delhi
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()
Note: seek() function of file object is used to reposition the cursor Syntax :
seek(number of bytes to read, seek_direction)
Seek_direction can be 0 – beginning, 1 – current position , 2- from last (can be in negative
also for backward traversing)
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.
For. e.g. if the content of file is:
SACHIN
AMIT AMAN
SUSHIL
DEEPAK
HARI SHANKER
Function should display
Total Names beginning from „S‟ are 2
import pickle
myfile = open("test.dat","wb")
d={1:100,2:200,3:300}
#statement to store dictionary d in file
myfile.close()
Ans pickle.dump(d,myfile)
20 Consider the following Python code and complete the missing statement:
import pickle
myfile = open("test.dat","rb")
d= #statement to load dictionary data from file to „d‟
print(d)
myfile.close()
Ans pickle.load(myfile)
21 Python‟s standard streams are , ,
Ans stdin, stdout, stderr
22 Python‟s standard streams are available in module
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
Ans import csv
def DISPEMP():
with open('emp.csv') as csvfile:
myreader = csv.reader(csvfile,delimiter=',') print("%10s"%"EMPNO","%20s"%"EMP
NAME","%10s"%"SALARY")
print("==================================================")
for row in myreader:
if int(row[2])>4000:
print("%10s"%row[0],"%20s"%row[1],"%10s"%row[2])
29 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 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:
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()