0% found this document useful (0 votes)
10 views

5 File Handling 1 (1) (1)

This document provides an overview of file handling in Python, covering types of files such as text, binary, and CSV files. It explains the processes of opening, reading, writing, and closing files, as well as the use of the pickle module for binary file operations. Additionally, it discusses the importance of data file handling for preserving data beyond program execution.

Uploaded by

nivvu2007
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
10 views

5 File Handling 1 (1) (1)

This document provides an overview of file handling in Python, covering types of files such as text, binary, and CSV files. It explains the processes of opening, reading, writing, and closing files, as well as the use of the pickle module for binary file operations. Additionally, it discusses the importance of data file handling for preserving data beyond program execution.

Uploaded by

nivvu2007
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 71

FILE HANDLING IN

PYTHON

1
LEARNING OBJECTIVES
At the end of this chapter you will be able to learn :

❏ Understanding Files
❏ Types of Files
❏ Understanding Text Files
❏ Opening and closing Text files
❏ Reading and writing in Files
❏ Understanding Binary Files
❏ Pickling and Unpickling
❏ Opening and closing Binary files
❏ Reading and writing in Binary Files
❏ CSV (Comma separated values) files. 2
NEED FOR DATA FILE HANDLING

● Mostly, in programming languages, all the values or data are stored in some
variables which are volatile in nature.
● Because data will be stored into those variables during run-time only and will be
lost once the program execution is completed. Hence it is better to save these data
permanently using files.

3
INTRODUCTION
● A file in itself is a sequence of bytes stored in some storage device like hard-disk,
pen-drive etc.
● Python allow us to create and manage three types of files :

1. TEXT FILE

2. BINARY FILE

3. CSV (Comma Separated Values) FILES

4
TEXT FILE
● A text file is structured as a sequence of lines.
● Line is a sequence of characters (ASCII or UNICODE)
● Stores information in ASCII or Unicode characters.
● Each line of text is terminated by a special character known as End Of Line
character.
● Text files are stored in human readable form and they can also be created using
any text editor.

5
BINARY FILE
● A file that contains information in the same format in which information
is held in memory.
● Binary file contains arbitrary binary data.
● So when we work on binary file, we have to interpret the raw bit
pattern(s) read from the file into correct type of data in our program.
● Python provides special module(s) for encoding and decoding of data
for binary file.

6
CSV FILES
● CSV stands for Comma Separated Values.
● CSV is just like a text file, in a human readable format which is extensively
used to store tabular data, in a spreadsheet or database.
● The separator character of CSV files is called a delimiter.
● Default delimiter is comma (,). Other delimiters are tab (\t), colon (:), pipe
(|), semicolon (;) characters.

7
Types of File
There are two types of files:
Text Files- A file whose contents can be viewed using a text editor is called a text
file. A text file is simply a sequence of ASCII or Unicode characters. Python
programs, contents written in text editors are some of the example of text files.e.g.
.txt,.rtf,.csv etc.
Binary Files-A binary file stores the data in the same way as as stored in the
memory. The
.exe files,mp3 file, image files, word documents are some of the examples of binary
files.we
can’t read a binary file using a text editor.e.g. .bmp,.cdr etc.

Visit : python.mykvs.in for regular


Text File Binary File
Its Bits represent character. Its Bits represent a custom data.
Less prone to get corrupt as change reflects as soon Can easily get corrupted, corrupt on even single bit
as made and can be undone. change

Can store different types of data (audio,


Store only plain text in a file.
text,image) in a single file.
Widely used file format and can be opened in any Developed for an application and can be opened
text editor. in that application only.

Mostly .txt,.rtf are used as extensions to text files. Can have any application defined extension.

9
10
STEPS TO PROCESS A FILE
1. Determine the type of file usage.
a. Reading purpose : If the data is to be brought in from a file to memory
b. Writing purpose : If the data is to be sent from memory to file.
2. Open the file and assign its reference to a file object or file-handle.
3. Process the file as required : Perform the desired operation from the file.
4. Close the file.

11
OPENING A TEXT FILE
● The key function for working with files in Python is the open() function.
● It accepts two parameters : filename, and mode.

Syntax:
<file_object_name> = open(<file_name>,<mode>)

Example: f = open(“demo.txt”,”r”)

● Can specify if the file should be handled as binary or text Mode :


○ "t" - Text - Default value. Text mode
○ "b" - Binary - Binary mode (e.g. images)
12
● File Objects:
○ It serves as a link to file residing in your computer.
○ It is a reference to the file on the disk and it is through this link python
program can perform operations on the files.
● File access modes:
○ It governs the type of operations(such as read or write or append)
possible in the opened file.

13
Mode Description● Various Modes for opening a text file are:

“r” Read Default value. Opens a file for reading, error if the file does
not exist.

“w” Write Opens a file for writing, creates the file if it does not exist

“a” Append Opens a file for appending, creates the file if it does not exist

“r+” Read and File must exist otherwise error is raised.Both reading and
Write writing operations can take place.

“w+” Write and File is created if it does not exist.If the file exists past data is
Read lost (truncated).Both reading and writing operations can
take place.

“a+” Append and File is created if it does not exist.If the file exists past data is
Read not lost .Both reading and writing(appending) operations
14
can take place.
CLOSING A FILE
● close()- method will free up all the system resources used by the file, this
means that once file is closed, we will not be able to use the file object any more.
● <fileobject>. close() will be used to close the file object, once we have finished
working on it.

Syntax:

<fileObject>.close()

Example : f.close()

● It is important to close your files, as in some cases, due to buffering,changes


made to a file may not show until you close the file.
15
READING FROM A FILE
➔ A Program reads a text/binary file from hard disk. Here File acts like an input
to the program.
➔ Followings are the methods to read a data from the file:
◆ read() METHOD
◆ readline() METHOD
◆ readlines() METHOD

16
read() METHOD
● By default the read() method returns the whole text, but you can also specify
how many characters you want to return by passing the size as argument.

Syntax: <file_object>.read([n])

where n is the size

● To read entire file : <file_object>.read()


● To reads only a part of the File : <file_object>.read(size)

f = open("demo.txt", "r")

print(f.read(15))

Returns the 15 first characters of the file "demo.txt". 17


18
readline() METHOD

● readline() will return a line read, as a string from the file.

Syntax:

<file_object>.readline()

● Example

f = open("demo.txt", "r")

print(f.readline())

● This example program will return the first line in the file “demo.txt”
19
irrespective of number of lines in the text file.
Reading a complete file line by line using readline().

20
readlines() METHOD
● readlines() method will return a list of strings, each separated by \n
● readlines() can be used to read the entire content of the file.

Syntax:

<file_object>.readlines()

● It returns a list, which can then be used for manipulation.

Example : f = open("demofile.txt", "r")

print(f.readlines())
21
Read a file using Readlines()

22
23
WRITING TO A TEXT FILE
● A Program writes into a text/binary file in hard disk.
● Followings are the methods to write a data to the file.
○ write () METHOD
○ writelines() METHOD
● To write to an existing file, you must add a parameter to the open()

Function which specifies the mode :

○ "a" - Append - will append to the end of the file


○ "w" - Write - will overwrite any existing content

24
write() Method
● write() method takes a string ( as parameter ) and writes it in the file.
● For storing data with end of line character, you will have to add \n character to end
of the string
● Example:

Open the file "demo_append.txt" and append content to the file:

f = open("demo_write.txt", ""a)

f.write("Hello students \n We are learning data file handling…..!")

f.close()

f = open("demo_write.txt", "r") #open and read the file after the appending
25
print(f.read())
26
writelines() METHOD
● For writing a string at a time, we use write() method, it can't be used

for writing a list, tuple etc. into a file.

● Python file method writelines() writes a sequence of strings to the file.


The sequence can be any iterable object producing strings, typically a
list of strings.
● So, whenever we have to write a sequence of string, we will use
writelines(), instead of write().

27
28
The flush()
The flush function forces the writing of data on disc still pending on the
output buffer.

Syntax : <file_object>.flush()

29
30
Standard Input, Output, and Error
Streams
❏ Keyboard is the standard input device
❏ stdin - reads from the keyboard
❏ Monitor is the standard output device.
❏ stdout - prints to the display
❏ If any error occurs it is also displayed on the monitor and hence it is
also the standard error device.
❏ Same as stdout but normally only for errors (stderr)

The standard devices are implemented as files called streams. They can be
used by importing the sys module.
31
DATA FILE HANDLING IN BINARY
FILES
● Files that store objects as some byte stream are called binary files.
● That is, all the binary files are encoded in binary format , as a sequence of
bytes, which is understood by a computer or machine.
● In binary files, there is no delimiter to end the line.
● Since they are directly in the form of binary, there is no need to translate
them.
● But they are not in human readable form and hence difficult to

understand.

32
● Objects have a specific structure which must be maintained while storing or
accessing them.
● Python provides a special module called pickle module for this.

● PICKLING refers to the process of converting the structure to a byte

stream before writing to a file.

● UNPICKLING is used to convert the byte stream back to the original

structure while reading the contents of the file.


33
Pickling and Unpickling

34
PICKLE Module

● Before reading or writing to a file, we have to import the pickle


module.

import pickle

● It provides two main methods :


○ dump() method
○ load() method

35
Opening and closing binary files
Opening a binary file:

Similar to text file except that it should be opened in binary


mode.Adding a „b‟ to the text file mode makes it binary - file mode.

EXAMPLE :

f = open(“demo.dat”,”rb”)

Closing a binary file

f.close()

36
Mode Description● Various Modes for opening a binary file are:

“rb” Read Default value. Opens a file for reading, error if the file does
not exist.

“wb” Write Opens a file for writing, creates the file if it does not exist

“ab” Append Opens a file for appending, creates the file if it does not exist

“r+b”or Read and File must exist otherwise error is raised.Both reading and
“rb+” Write writing operations can take place.

“w+b”or Write and File is created if it does not exist.If the file exists past data is
“wb+” Read lost (truncated).Both reading and writing operations can take
place.

“a+b” or Append and File is created if it does not exist.If the file exists past data is
“ab+” Read not lost .Both reading and writing operations can take place.
37
pickle.dump() Method
● pickle.dump() method is used to write the object in file which is
opened in binary access mode.

Syntax :

pickle.dump(<structure>,<FileObject>)

● Structure can be any sequence in Python such as list, dictionary etc.


● FileObject is the file handle of file in which we have to write.

38
binary_file.dat file
after execution of
the program.

39
pickle.load() Method
● pickle.load() method is used to read data from a file

Syntax :

<structure> = pickle.load(<FileObject>)

● Structure can be any sequence in Python such as list, dictionary etc.


● FileObject is the file handle of file in which we have to write.

40
41
Write a method to write employee
details into a binary file. Take the
input from the user.
Employee Details:

Employee Name

Employee Number

Department

Salary

42
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 file using


load() i.e. it is used to read object from pickle file.
🞍 Syntax: object
& = load(filehandle)
Example: dump()

See the content is some kind


of encrypted format, and it is
& not in complete
form readable
Example: load()

&
Absolute Vs Relative PATH
 To understand PATH we must be 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.

&
Absolute Vs Relative PATH
 The drive is the main container in 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.

&
Absolute Vs Relative PATH
DRIVE
FOLDER

&
DRIVE/FOLDER/FILE HIERARCHY

C:\
DRIV E

SALES IT HR PROD
FOLDE R FOLDE R FOLDE R FOLDE R

2018 2019 MEMBERS.DOC NOIDA DELHI


FOLDE R FOLDE R FOLDE R FOLDE R FOLDE R

REVENUE.TXT SHEET.XLS SEC_8.XLS SEC_12.PPT


FILE FILE FILE FILE

&
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…\filename
of file
 For e.g. the Absolute path REVENUE.TXT will be
 C:\SALES\2018\REVENUE.TXT
 Absolute path of SEC_12.PPT is
 C:\PROD\NOIDA\Sec_12.ppt
&
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( .. ) refers &
to ROOT folder.
Relative addressing
Current working directory
C:\
DRIVE

SALES IT HR PROD
FOLDER FOLDER FOLDER FOLDER

2018 2019 MEMBERS.DOC NOIDA DELHI


FOLDER FOLDER FOLDER FOLDER FOLDER

REVENUE.TXT SHEET.XLS SEC_8.XLS SEC_12.PPT


FILE FILE FILE FILE

SUPPOSE CURRENT WORKING DIRECTORY IS : SALES


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

.\2019\SHEET.XLS &
Relative addressing Current working
directory
C:\
DRIVE

SALES IT HR PROD
FOLDER FOLDER FOLDER FOLDER

2018 2019 MEMBERS.DOC NOIDA DELHI


FOLDER FOLDER FOLDER FOLDER FOLDER

REVENUE.TXT SHEET.XLS SEC_8.XLS SEC_12.PPT


FILE FILE FILE FILE

SUPPOSE CURRENT WORKING DIRECTORY IS : DELHI


WE WANT TO ACCESS SEC_8.XLS FILE, THEN RELATIVE ADDRESS WILL BE
..\NOIDA\SEC_8.XLS
&
Getting name of current working
directory
import os
pwd = os.getcwd()
print("Current Directory :",pwd)

&
Random Access in Files : tell() and seek()
❏ tell() function is used to obtain the current position of the file pointer

Syntax : f.tell()

❏ File pointer is like a cursor, which determines from where data has to be
read or written in the file.
❏ seek () function is used to change the position of the file pointer to a given
position.

Syntax : f.seek(offset,reference_point)

Where f is the file object


56
CSV files
● CSV stands for Comma Separated Values.It is a type of plain text file that
uses specific structuring to arrange tabular data such as a spreadsheet or
database.
● CSV like a text file , is in a human readable format and extensively used to
store tabular data, in a spreadsheet or database.
● Each line of the file is a data record.
● Each record consists of one or more fields, separated by commas.
● The separator character of CSV files is called a delimiter.
● Default delimiter is (,).
● Other delimiters are tab(\t), colon (:), pipe(|), semicolon (;) characters.

57
Python CSV Module
● CSV module provides two types of objects :
○ reader : to read from cvs files
○ writer : to write into csv files.
● To import csv module in our program , we use the following statement:

import csv

58
Opening / Closing a CSV File
● Open a CSV File :

f = open(“demo_csv.csv”,”r”)

OR

f = open(“demo_csv.csv”,”w”)

● Close a CSV File:

f.close()

59
Role of argument newline in opening
of csv files :
● newline argument specifies how would python handle new line characters
while working with csv files on different Operating System.
● Additional optional argument as newline = “”(null string) with the file
open() will ensure that no translation of EOL character takes place.

60
Steps to write data to a csv file
1. Import csv module

import csv

1. Open csv file in write mode.

f = open(“csv_demo.csv”,”w”)

1. Create the writer object.

demo_writer = csv.writer(f)

1. Write data using the methods writerow() or writerows()


demo_writer.writerow(<iterable_object>)
1. Close the file
f.close() 61
Writing in CSV Files
● csv.writer() :

Returns a writer object which writes data into csv files.

● writerow() :

Writes one row of data onto the writer object.

Syntax : <writer_object>.writerow()

● writerows() :

Writes multiple rows into the writer object

Syntax : <writer_object>.writerow() 62
Writing in CSV Files
● To write data into csv files, writer() function of csv module is used.
● csv.writer():
○ Returns a writer object which writes data into writer object.

● Significance of writer object


○ The csv.writer() returns a writer object that converts the data into a
delimited string.
○ The string can be later converted into csv files using the writerow()
or writerows() method.

63
● <writer_object>.writerow() :

Writes one row of data in to the writer object.

● <writer_object>.writerows()

Writes multiple rows into the writer object.

64
65
Reading from CSV Module
● To read data from csv files, reader function of csv module is used.

● csv.reader() :

Returns a reader object.

It loads data from a csv file into an iterable after parsing delimited data.

66
Steps to read data from a csv file
1. Import csv module

import csv

1. Open csv file in read mode.

f = open(“csv_demo.csv”,”r”)

1. Create the reader object.

demo_reader = csv.reader(f)

1. Fetch data through for loop, row by row.

1. Close the file


f.close() 67
68
QUESTIONS FOR
PRACTICE
Write a method in python to read the content from a file “Poem.txt”
and display the same on the screen.

Write a method in python to read the content from a file “Poem.txt”


line by line and display the same on the screen.

Write a method in python to count the number of lines from a text


file which are starting with an alphabet T.

Write a method in Python to count the total number of words in a file

69
Write a method in python to read from a text file “Poem.text” to
find and display the occurrence of the word “Twinkle”

Write a method Bigline() in Python to read lines from a text file


“Poem.txt” and display those lines which are bigger than 50
characters.

Write a method to read data from a file. All the lowercase letter
should be stored in the file “lower.txt” , all upper case characters
get stored inside the file “upper.txt” and other characters stored
inside the file “others.txt”

70
THANK YOU

71

You might also like