0% found this document useful (0 votes)
22 views59 pages

Python FILE HANDLING

Notes for File handling in Python Programming .

Uploaded by

ritesh kushwah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
22 views59 pages

Python FILE HANDLING

Notes for File handling in Python Programming .

Uploaded by

ritesh kushwah
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 59

Shri Vaishnav Institute of Management

Department of Computer Science


2023-2024
BCA 3rd Year
S3- (BCAA2Q) Major : Python Programming Theory
Unit – III
by
Ritesh Kushwah
Assistant Professor
Contents
 File Handling
FILE
HANDLING
 INTRODUCTION
 DATA FILES
 OPENING AND CLOSING FILES
 READING AND WRITING FILES
 STANDARD INPUT, OUTPUT AND ERROR
STREAMS
Ritesh Kushwah (Asst. Professor), SVIM
Introductio
n
 FILE HANDLING is a mechanism by
which we can read data of disk files in
python program or write back data
from python program to disk files.
 So far in our python program the
standard input in coming from
keyboard an output is going to monitor
i.e. no where data is stored permanent
and entered data is present as long as
program is running BUT file handling
allows us to store data entered through
python program permanently in disk
Ritesh Kushwah (Asst. Professor), SVIM
file and later on we can read back the
DATA
FILES
 It contains data pertaining to a
specific application, for later use.
The data files can be stored in two
ways –
 Text File
 Binary File

Ritesh Kushwah (Asst. Professor), SVIM


Text
File
 Text file stores information in ASCII OR
UNICODE character. In text file
everything will be stored as a character
for example if data is “computer” then
it will take 8 bytes and if the data is
floating value like 11237.9876 it will
take 10 bytes.
 In text file each like is terminated by
special character called EOL. In text
file some translation takes place when
this EOL character is read or written. In
python EOL is ‘\n’ or ‘\r’ or combination
of both
Ritesh Kushwah (Asst. Professor), SVIM
Binary
files
 It stores the information in the same
format as in the memory i.e. data is
stored according to its data type so
no translation occurs.
 In binary file there is no delimiter for
a new line
 Binary files are faster and easier for
a program to read and write than
text files.
 Data in binary files cannot be directly
read, it can be read only through
Ritesh Kushwah (Asst. Professor), SVIM
Steps in Data File
Handling
1. OPENING FILE
 We should first open the file for read or
write by specifying the name of file and
mode.
2. PERFORMING READ/WRITE
 Once the file is opened now we can either
read or write for which file is opened using
various functions available
3. CLOSING FILE
 After performing operation we must close
the file and release the file for other
Ritesh Kushwah (Asst. Professor), SVIM
application to use it,
Opening
File
 File can be opened for either –
read, write, append.
SYNTAX:
file_object =
open(filename)
Or
file_object =
open(filename,mode)
** default mode is
“read”
Ritesh Kushwah (Asst. Professor), SVIM
Opening
File
myfile = open(“story.txt”)
here disk file “story.txt” is loaded
in memory and its reference is linked
to “myfile” object, now python
program will access “story.txt”
through “myfile” object.
here “story.txt” is present in the
same folder where .py file is stored
otherwise if disk file to work is in
another folder we have to give full
Ritesh Kushwah (Asst. Professor), SVIM
Opening
File
myfile = open(“article.txt”,”r”)
here “r” is for read (although it is by default,
other
options are “w” for write, “a” for append)

myfile = open(“d:\\mydata\\
poem.txt”,”r”)
here we are accessing “poem.txt” file stored
in
separate location i.e. d:\mydata folder.
at the time of giving path of file we must use
double backslash(\\) in place of single backslash
because in python single slash is used for escape
character and it may cause problem like if the
folder name is “nitin” and we provide path as d:\
nitin\poem.txt thenSVIMin \nitin “\n” will become
Ritesh Kushwah (Asst. Professor),
Opening
File
myfile = open(“d:\\mydata\\
poem.txt”,”r”)
another solution of double
backslash is using “r” before the
path making the string as raw string
i.e. no special meaning attached to
any character as:
myfile = open(r“d:\mydata\
poem.txt”,”r”)

Ritesh Kushwah (Asst. Professor), SVIM


File
Handle
myfile = open(r“d:\mydata\
poem.txt”,”r”)

In the above example “myfile” is the


file object or file handle or file pointer
holding the reference of disk file. In
python we will access and manipulate
the disk file through this file handle
only.
Ritesh Kushwah (Asst. Professor), SVIM
File Access
Mode
Text
File
Binary
File
Description Notes

Mode
Mod
e
‘r’ ‘rb’ Read only File must exists, otherwise Python
raises
I/O errors
‘w’ ‘wb’ Write only If file not exists, file is created
If file exists, python will
truncate existing data and
overwrite the file.
‘a’ ‘ab’ Append File is in write mode only, new
data will be added to the end
of existing data i.e. no
overwriting. If file not exists it is
created
‘r+’ ‘r+b’ or Read and File must exists otherwise error
‘rb+’ write is raised Both reading and
writing can take place
Ritesh Kushwah (Asst. Professor), SVIM
w+ ‘w+b’ or Write and File is created if not exists, if
Closing
file
 As reference of disk file is stored in
file handle so to close we must call
the close() function through the file
handle and release the file.

myfile.close()

Note: open function is built-in function


used standalone while close() must be
called through file handle
Ritesh Kushwah (Asst. Professor), SVIM
Reading from
File
 To read from file python provide many
functions like :
 Filehandle.read([n]) : reads and
return n bytes, if n is not specified it
reads entire file.
 Filehandle.readline([n]) : reads a
line of input. If n is specified reads at
most n bytes. Read bytes in the form of
string ending with line character or
blank string if no more bytes are left for
reading.
 Filehandle.readlines(): reads all
Ritesh Kushwah (Asst. Professor), SVIM
Example-1:
FILEread()
SAMPLE

Ritesh Kushwah (Asst. Professor), SVIM


Example-2:
FILEread()
SAMPLE

Ritesh Kushwah (Asst. Professor), SVIM


Example-3:
FILEreadline()
SAMPLE

Ritesh Kushwah (Asst. Professor), SVIM


Example-3:
FILEreadline()
SAMPLE

HAVE YOU NOTICED THE DIFFERENCE IN OUTPUT FROM


PREVIOUS OUPUT?
Ritesh Kushwah (Asst. Professor), SVIM
Example-4: reading line by line using
readline()
SAMPLE
FILE

Ritesh Kushwah (Asst. Professor), SVIM


Example-5: reading line by line using for loop

SAMPLE
FILE

Ritesh Kushwah (Asst. Professor), SVIM


Example-6: Calculating size of file with and
without EOL and blank lines
SAMPLE
FILE

Ritesh Kushwah (Asst. Professor), SVIM


Example-7: readlines()
SAMPLE
FILE

Ritesh Kushwah (Asst. Professor), SVIM


Example-8 & 9: counting size foorfmofer ilupedsaet is nvsitib:
of
ywwtwe.sphytaonnd4csnpi oc. .om
lines
SAMPLE
FILE

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Questions

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Writing onto
files
 After read operation, let us take an
example of how to write data in
disk files. Python provides
functions:
 write ()
 writelines()
 The above functions are called
by theSyntax
Name file handle to Description
write
write() Filehandle.write(str1) Writes string str1 to file
desired content. referenced by filehandle
Writelines() Filehandle.writelines(L) Writes all string in List L as
lines to file referenced by
Ritesh Kushwah (Asst. Professor), SVIM
filehandle.
for more updates visit:
www.python4csip.com

Example- write() using “w”


1: mode

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Example- write() using “w”


1: mode

Lets run
the same
program
again
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Example- write() using “w”


1: mode

Now we can observe that while writing data to file using “w”
mode the previous content of existing file will be overwritten and
new content will be saved.

If we want to add new data without overwriting the previous


content then we should write using “a” mode i.e. append mode.
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Example- write() using “a”


2: mode

New content is
added after
previous
content
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Example- using
3: writelines()

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
Example-4: Writing String as a www.python4csip.com

record to file

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
Example-4: To copy the content www.python4csip.com

of one file to another file

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

flush()
function
 When we write any data to file,
python hold everything in buffer
(temporary memory) and pushes it
onto actual file later. If you want to
force Python to write the content of
buffer onto storage, you can use
flush() function.
 Python automatically flushes the files
when closing them i.e. it will be
implicitly called by the close(), BUT if
Ritesh Kushwah (Asst. Professor), SVIM

you want to flush before closing any


for more updates visit:
www.python4csip.com

Example: working of Nothing is


flush() in the file
temp.txt
Without
flush()

When you run the above code,


program will stopped at “Press any
key”, for time being don’t press
any key and go to folder where file
“temp.txt” is created an open it to
see what is in the file till now
NOW PRESS ANY KEY….

Now content is
stored, because of
Ritesh Kushwah (Asst. Professor), SVIM close() function
pushed in
file are flushed
contents
for more updates visit:
www.python4csip.com

Example: working of All


contents
flush()
With flush() before
flush() are
present in
file

When you run the above code,


program will stopped at “Press any
key”, for time being don’t press
any key and go to folder where file
“temp.txt” is created an open it to
see what is in the file till now
NOW PRESS ANY KEY….

Rest of the content is


written because of
Ritesh Kushwah (Asst. Professor), SVIM close(),
pushedcontents
in are
file.
flushed and
for more updates visit:
www.python4csip.com

Removing whitespaces after


reading from file
 read() and readline() reads data
from file and return it in the form of
string and readlines() returns data
in the form of list.
 All these read function also read
leading and trailing whitespaces, new
line characters. If you want to remove
these characters you can use
functions
 strip() : removes the given character from
both ends.
Ritesh Kushwah (Asst. Professor), SVIM
 lstrip(): removes given character from left
for more updates visit:
www.python4csip.com

Example:
strip(),lstrip(),
rstrip()

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

File
Pointer
 Every file maintains a file pointer
which tells the current position in the
file where reading and writing
operation will take.
 When we perform any read/write
operation two things happens:
 The operation at the current position of file
pointer
 File pointer advances by the specified
number of bytes.
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Exampl
e
myfile =
open(“ipl.txt”,”r”)

File pointer will be by default at first position i.e.


first character
ch =
myfile.read(1)
ch will store first character i.e. first character is consumed, and
file pointer will move to next character

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

File Modes and Opening


position of file pointer
FILE MODE OPENING POSITION
r, r+, rb, rb+, r+b Beginning of file
w, w+, wb, wb+, w+b Beginning of file (overwrites the
file if
file already exists
a, ab, a+, ab+, a+b At the end of file if file exists
otherwise creates a new file

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Standard INPUT, OUTPUT and ERROR


STREAM

 Standard Input :
Keyboard
 Standard :
Output Monitor
 Standard :
 error Monitor
Standard Input devices(stdin)
reads from keyboard
 Standard output devices(stdout)
display output on monitor
 Standard error devices(stderr) same
as stdout but normally for errors
only.
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Standard INPUT, OUTPUT and ERROR


STREAM
 The standard devices are
implemented as files called
standard streams in Python and we
can use them by using sys module.
 After importing sys module we can
use standard streams stdin,
stdout, stderr

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

“with”
statement
 Python’s “with” statement for file
handling is very handy when you have
two related operations which you
would like to execute as a pair, with a
block of code in between:
with open(filename[, mode]) as
filehandle:
file_manipulation_statemen
t
 The advantage of “with” is it will
automatically close the file after
Ritesh Kushwah (Asst. Professor), SVIM
nested block of code. It guarantees
for more updates visit:
www.python4csip.com

Exampl
e

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Binary file
operations
 If we want to write a structure such
as list or dictionary to a file and read
it subsequently we need to use the
Python module pickle. Pickling is
the process of converting structure
to a byte stream before writing to a
file and while reading the content of
file a reverse process called
Unpickling is used to convert the
byte stream back to the original
format.
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Steps to perform binary file


operations

 First we need to import the


module called pickle.
 This module provides 2 main
functions:
 dump() : to write the object in file which
is loaded in binary mode
◾Syntax : dump(object_to_write,
filehandle)

 load() : dumped data can be read from


Ritesh Kushwah (Asst. Professor), SVIM
file using load() i.e. it is used to read
for more updates visit:
www.python4csip.com

Example:
dump()

See the content is


some kind of
encrypted format, and
Ritesh Kushwah (Asst. Professor), SVIM it is not for
in complete
m
readable
for more updates visit:
www.python4csip.com

Example:
load()

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Absolute Vs Relative
 To understand PATH we must be
PATH
familiar with the terms: DRIVE,
FOLDER/DIRECTORY, FILES.
 Our hard disk is logically divided
into many parts called DRIVES like
C DRIVE, D DRIVE etc.

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Absolute Vs Relative
 The drive is the main container in
PATH
which we put everything to store.
 The naming format is :
DRIVE_LETTER:
 For e.g. C: , D:
 Drive is also known as ROOT
DIRECTORY.
 Drive contains Folder and Files.
 Folder contains sub-folders or files
 Files are the actual data container.
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Absolute Vs Relative
PATH DRIV
E FOLDE
R

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

DRIVE/FOLDER/FILE
HIERARCHY
C:\
DRI E
V

SALES IT HR PROD
FOLD R FOLD R FOLD R FOLD R
E E E E

2018 2019 MEMBERS.DO NOIDA DELHI


FOLD R FOLD R C FOLD R FOLD R FOLD R
E E E E E

REVENUE.TX SHEET.XLS SEC_8.XLS SEC_12.PPT


T FILE FILE FILE FILE

Ritesh Kushwah (Asst. Professor), SVIM


for more updates visit:
www.python4csip.com

Absolute
Path
 Absolute path is the full address of
any file or folder from the Drive i.e.
from ROOT FOLDER. It is like:
Drive_Name:\Folder\Folder…\
 Forfilename
e.g. the Absolute of
path REVENUE.TXT will be file
 C:\SALES\2018\
REVENUE.TXT
 Absolute path of
SEC_12.PPT is
Ritesh Kushwah (Asst. Professor), SVIM
 C:\PROD\NOIDA\
for more updates visit:
www.python4csip.com

Relative
Path
 Relative Path is the location of
file/folder from the current folder.
To use Relative path special
symbols are:
 Single Dot ( . ) : single dot ( . )
refers to current folder.
 Double Dot ( .. ) : double dot ( .. )
refers to parent folder
 Backslash ( \ ) : first backslash
before (.) and double
dot(
Ritesh .. (Asst.
Kushwah ) Professor), SVIM refers to ROOT
for more updates visit:
www.python4csip.com

Relative
addressing
Current working
directory C:\
DRIV
E

SALE IT H PRO
S R D
FOLDE FOLDE FOLDE FOLDE
R R R R

201 201 MEMBERS.DO NOID DELH


8 9 C A I
FOLDE FOLDE FOLDE FOLDE FOLDE
R R R R R

REVENUE.T SHEET.XL SEC_8.XL SEC_12.PP


XT S S T
FIL FIL FIL FIL
E E E E

SUPPOSE CURRENT WORKING DIRECTORY IS : SALES


WE WANT TO ACCESS SHEET.XLS FILE, THEN RELATIVE
ADDRESS WILL BE

.\2019\SHEET.XLS
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Relative
addressing Current
working
C:\ directory
DRIV
E

SALE IT H PRO
S R D
FOLDE FOLDE FOLDE FOLDE
R R R R

201 201 MEMBERS.DO NOID DELH


8 9 C A I
FOLDE FOLDE FOLDE FOLDE FOLDE
R R R R R

REVENUE.T SHEET.XL SEC_8.XL SEC_12.PP


XT S S T
FIL FIL FIL FIL
E E E E

SUPPOSE CURRENT WORKING DIRECTORY IS : DELHI


WE WANT TO ACCESS SEC_8.XLS FILE, THEN RELATIVE
ADDRESS WILL BE
..\NOIDA\SEC_8.XLS
Ritesh Kushwah (Asst. Professor), SVIM
for more updates visit:
www.python4csip.com

Getting name of current


working directory
import os
pwd = os.getcwd()
print("Current
Directory :",pwd)

Ritesh Kushwah (Asst. Professor), SVIM

You might also like