Difference between revisions of "Python-3.4.3/C2/Getting-started-with-files/English"
Line 1: | Line 1: | ||
− | + | '''Title of script''': '''Getting started with files''' | |
'''Author: Trupti Kini''' | '''Author: Trupti Kini''' | ||
− | '''Keywords: | + | '''Keywords: IPython, files, read, write, append, mode, splitlines()''' |
{| style="border-spacing:0;" | {| style="border-spacing:0;" | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <center>'''Visual Cue'''</center> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <center>'''Visual Cue'''</center> | ||
Line 19: | Line 19: | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| At the end of this tutorial, you will | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| At the end of this tutorial, you will learn to - |
Line 25: | Line 25: | ||
# Read the contents of the file line by line. | # Read the contents of the file line by line. | ||
# Read the entire content of the file at once. | # Read the entire content of the file at once. | ||
− | # Append the lines of a file to a list | + | # Append the lines of a file to a list and |
# Close the file. | # Close the file. | ||
Line 37: | Line 37: | ||
* '''Ubuntu Linux 16.04''' operating system | * '''Ubuntu Linux 16.04''' operating system | ||
− | * '''Python 3.4.3''' | + | * '''Python 3.4.3 '''and |
− | * '''IPython 5.1.0''' | + | * '''IPython 5.1.0'''<br/> |
+ | |||
Line 46: | Line 47: | ||
Pre-requisite | Pre-requisite | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| To practice this tutorial, you should know about | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| To practice this tutorial, you should know about |
* Lists and | * Lists and | ||
* '''for''' statement | * '''for''' statement | ||
− | If not, see the pre-requisite Python tutorials on | + | If not, see the pre-requisite Python tutorials on this website. |
|- | |- | ||
Line 59: | Line 60: | ||
− | Highlight according to narration: (open and | + | Highlight according to narration: (open and file object) |
'''''syntax:''''' | '''''syntax:''''' | ||
− | '''''file_object <nowiki>= open( | + | '''''file_object <nowiki>= open(</nowiki>filename, mode)''''' |
Line 70: | Line 71: | ||
Mode- indicates how the file is going to be opened. | Mode- indicates how the file is going to be opened. | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| To open a file for reading or writing, we can use a built in function called '''open()'''. | ||
− | + | '''Open() '''function returns a file object. | |
− | + | ||
− | + | ||
− | + | ||
− | Open() function returns a file object. | + | |
Line 82: | Line 80: | ||
− | Filename - is the name of the file to be opened. | + | '''Filename''' - is the name of the file to be opened. |
− | Mode- This indicates how the file is going to be opened. | + | '''Mode'''- This indicates how the file is going to be opened. |
Line 97: | Line 95: | ||
− | ''''' | + | '''''file_object <nowiki>= open(filename, mode)</nowiki>''''' |
r- Read mode | r- Read mode | ||
Line 120: | Line 118: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Open pendulum.txt in text editor | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Open pendulum.txt in text editor | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Let us open a file, '''pendulum.txt''' in a text editor. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Let us open a file, '''pendulum.txt''' in a text editor. | ||
− | |||
− | |||
− | |||
|- | |- | ||
Line 141: | Line 136: | ||
Please download it in '''Home''' directory and use it. | Please download it in '''Home''' directory and use it. | ||
+ | |- | ||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[Terminal]</nowiki> | ||
+ | Press '''Ctrl+Alt+T '''keys | ||
− | + | Type | |
− | + | ||
− | + | ||
'''ipython3''' | '''ipython3''' | ||
Line 154: | Line 150: | ||
− | + | Type '''ipython3''' and press '''Enter'''. | |
|- | |- | ||
| style="background-color:#ffffff;border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.014cm;padding-right:0.191cm;"| <nowiki>[IPython console]</nowiki> | | style="background-color:#ffffff;border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.014cm;padding-right:0.191cm;"| <nowiki>[IPython console]</nowiki> | ||
+ | |||
+ | Type | ||
'''%pylab '''and press '''Enter.''' | '''%pylab '''and press '''Enter.''' | ||
Line 164: | Line 162: | ||
Type '''%pylab '''and press''' Enter.''' | Type '''%pylab '''and press''' Enter.''' | ||
+ | |||
+ | Let us clear the terminal. | ||
|- | |- | ||
Line 175: | Line 175: | ||
| style="background-color:#ffffff;border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.014cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:1pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.014cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
+ | |||
+ | Type | ||
'''f = open('pendulum.txt')''' | '''f = open('pendulum.txt')''' | ||
Line 183: | Line 185: | ||
− | Here the mode is not specified'''. '''By default, it is ‘r’. | + | Here the mode is not specified'''. ''' |
+ | |||
+ | By default, it is ‘r’. | ||
|- | |- | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
+ | |||
+ | Type | ||
'''f''' | '''f''' | ||
Line 195: | Line 201: | ||
− | The file object f, shows the | + | The file object f, shows the filename and mode of the file, which is open. |
|- | |- | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
− | Highlight ''' | + | Highlight '''filename '''and '''mode 'r'''' |
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| ''''r' '''stands for '''read''' only '''mode'''. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| ''''r' '''stands for '''read''' only '''mode'''. | ||
− | |||
As you can see, this '''file''' is '''open''' in '''read''' only '''mode'''. | As you can see, this '''file''' is '''open''' in '''read''' only '''mode'''. | ||
+ | |||
+ | |||
+ | |||
|- | |- | ||
Line 212: | Line 220: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Now let us learn to '''read''' the whole '''file''' into a single '''variable'''. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Now let us learn to '''read''' the whole '''file''' into a single '''variable'''. | ||
− | |||
− | |||
− | |||
|- | |- | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Type |
'''pend = f.read()''' | '''pend = f.read()''' | ||
Line 243: | Line 248: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
+ | Type | ||
'''print(pend)''' | '''print(pend)''' | ||
Line 253: | Line 259: | ||
|- | |- | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Point to the | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Point to the data |
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| We can see that '''pend''' has all the '''data''' of the '''file pendulum .txt'''. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| We can see that '''pend''' has all the '''data''' of the '''file pendulum.txt'''. |
Line 262: | Line 268: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
+ | Type | ||
− | '''pend'''Highlight | + | '''pend'''Highlight data with newline characters |
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Type just '''pend''' to see more explicitly, what it contains. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Type just '''pend''' to see more explicitly, what it contains. | ||
We can see the newline characters as well in the output. | We can see the newline characters as well in the output. | ||
+ | |||
+ | |||
+ | |||
|- | |- | ||
Line 286: | Line 296: | ||
'''pend_list = pend.splitlines()''' | '''pend_list = pend.splitlines()''' | ||
+ | |||
'''pend_list''' | '''pend_list''' | ||
− | Highlight the | + | Highlight the data into list of lines |
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| For this we need to store this '''list '''in a variable, say '''pend_list''' | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| For this we need to store this '''list '''in a variable, say '''pend_list''' | ||
− | |||
Type | Type | ||
Line 311: | Line 321: | ||
|- | |- | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Highlight | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Highlight the data into list of lines |
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| '''pend_list''' does not contain '''newline''' '''characters '''like '''\n'''. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| '''pend_list''' does not contain '''newline''' '''characters '''like '''\n'''. | ||
Line 332: | Line 342: | ||
Type '''f '''''dot '''''close '''''open and close parentheses'' | Type '''f '''''dot '''''close '''''open and close parentheses'' | ||
+ | |||
+ | Press Enter | ||
|- | |- | ||
Line 338: | Line 350: | ||
Highlight '''closed file''' | Highlight '''closed file''' | ||
+ | |||
+ | |||
+ | |||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| It is a good programming practice to '''close''' any '''file''' '''objects''' that we have opened, after their job is done. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| It is a good programming practice to '''close''' any '''file''' '''objects''' that we have opened, after their job is done. | ||
Line 351: | Line 366: | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Pause the video here, try out the following exercise and resume the video. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Pause the video here, try out the following exercise and then resume the video. |
Line 361: | Line 376: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
− | '''f = open('pendulum.txt')''' | + | Type'''f = open('pendulum.txt')''' |
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| To re-open the file again, type | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Let us switch back to the terminal. |
+ | |||
+ | To re-open the file again, type | ||
'''f '''''is equal to '''''open '''''inside parentheses inside quotes '''''pendulum.txt''' | '''f '''''is equal to '''''open '''''inside parentheses inside quotes '''''pendulum.txt''' | ||
Line 369: | Line 386: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
+ | Type | ||
'''for line in f:''' | '''for line in f:''' | ||
Line 381: | Line 399: | ||
Let us '''iterate''' over the '''file''' line-wise and '''print''' each of the lines. | Let us '''iterate''' over the '''file''' line-wise and '''print''' each of the lines. | ||
+ | |||
+ | Let us clear the terminal. | ||
Type | Type | ||
Line 397: | Line 417: | ||
We could have used any other '''variable''' name, but '''line''' seems meaningful enough. | We could have used any other '''variable''' name, but '''line''' seems meaningful enough. | ||
+ | |||
+ | Press Enter twice. | ||
+ | |||
+ | |||
+ | |||
|- | |- | ||
Line 408: | Line 433: | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| <nowiki>[IPython Terminal]</nowiki> | ||
+ | Type | ||
'''<nowiki>line_list = []</nowiki>''' | '''<nowiki>line_list = []</nowiki>''' | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| We first '''initialize''' | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| We first '''initialize''' a '''line_list '''as an '''empty-list''' |
Type, | Type, | ||
− | line ''underscore ''list ''equal to ''open and close square brackets. | + | line ''underscore ''list ''is'' ''equal to ''open and close square brackets. |
|- | |- | ||
Line 423: | Line 449: | ||
Highlight according to narration. | Highlight according to narration. | ||
+ | Type | ||
'''for line in open('pendulum.txt'):''' | '''for line in open('pendulum.txt'):''' | ||
Line 436: | Line 463: | ||
''four space'' line'' underscore'' list ''dot ''append i''nside parentheses'' line | ''four space'' line'' underscore'' list ''dot ''append i''nside parentheses'' line | ||
+ | |||
+ | Press Enter twice. | ||
Line 449: | Line 478: | ||
|- | |- | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| But, this time, let's leave alone the '''file''' '''object''' '''f''' and directly open the file within the '''for''' '''statement'''. | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| But, this time, let's leave alone the '''file''' '''object''' '''f '''and directly open the file within the '''for''' '''statement'''. |
Line 460: | Line 489: | ||
Type '''line_list '''and press '''Enter''' | Type '''line_list '''and press '''Enter''' | ||
− | Highlight | + | Highlight data |
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Let us see what '''line_list''' contains. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Let us see what '''line_list''' contains. | ||
− | Type ''' | + | Type '''line '''''underscore '''''list '''and press '''Enter.''' |
|- | |- | ||
Line 470: | Line 499: | ||
− | Highlight '''newline | + | Highlight '''newline characters''' |
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| If you noticed, ''' | + | |
+ | |||
+ | |||
+ | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| If you noticed, '''line '''''underscore '''''list''' is a list of the lines in the file, along with the '''newline''' '''characters'''. | ||
|- | |- | ||
Line 486: | Line 518: | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| This brings us to the end of this tutorial. In this tutorial, we learnt to - | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| This brings us to the end of this tutorial. |
+ | |||
+ | In this tutorial, we learnt to - | ||
# Open and close files using the '''open''' and '''close''' methods respectively. | # Open and close files using the '''open''' and '''close''' methods respectively. | ||
Line 498: | Line 532: | ||
Summary | Summary | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| # Read the data in the files line by line by iterating over the file object using the '''for loop'''. | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| # Read the data in the files line by line by iterating over the file object using the '''for loop'''. | ||
− | # Append the lines of a file to a list using the '''append | + | # Append the lines of a file to a list using the '''append''' method within the '''for loop'''. |
Line 568: | Line 602: | ||
|- | |- | ||
| style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Previous slide | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| Previous slide | ||
− | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| This is | + | | style="background-color:#ffffff;border:0.5pt solid #000001;padding-top:0cm;padding-bottom:0cm;padding-left:0.088cm;padding-right:0.191cm;"| This is Trupti Kini from IIT Bombay (or FOSSEE, if you wish) signing off. |
Thank you. | Thank you. | ||
|} | |} |
Revision as of 13:35, 9 January 2018
Title of script: Getting started with files
Author: Trupti Kini
Keywords: IPython, files, read, write, append, mode, splitlines()
|
|
Show Slide | Hello Friends. Welcome to the tutorial on "Getting started with files". |
Show Slide
Objectives
|
At the end of this tutorial, you will learn to -
|
Show slide
System Specifications |
To record this tutorial, I am using
|
Show Slide:
Pre-requisite |
To practice this tutorial, you should know about
If not, see the pre-requisite Python tutorials on this website. |
Show slide
Open a file
syntax:
Mode- indicates how the file is going to be opened. |
To open a file for reading or writing, we can use a built in function called open().
Mode- This indicates how the file is going to be opened.
|
Show slide
Open a file syntax:
r- Read mode w- Write mode a -Appending mode r+ - Read and Write |
r- represent the Read mode
w- is for Write mode a - represents Appending mode and r+ - for both Read and Write mode
|
Open pendulum.txt in text editor | Let us open a file, pendulum.txt in a text editor. |
Point to the columns in the file | This file contains 2 data columns, length and time of pendulum.
|
The file pendulum.txt is available in the code file link of this tutorial.
| |
[Terminal]
Press Ctrl+Alt+T keys Type ipython3
|
Let us first open the Terminal by pressing Ctrl+Alt+T keys simultaneously.
|
[IPython console]
Type %pylab and press Enter. |
Let us initialise the pylab package.
Let us clear the terminal. |
Let us open the file, pendulum.txt.
| |
[IPython Terminal]
f = open('pendulum.txt') |
Type
By default, it is ‘r’. |
[IPython Terminal]
Type f
|
Let us type f on the terminal to see what it is.
|
[IPython Terminal]
Highlight filename and mode 'r' |
'r' stands for read only mode.
As you can see, this file is open in read only mode.
|
[IPython Terminal]
|
Now let us learn to read the whole file into a single variable. |
Type
pend = f.read()
|
Type
|
[IPython Terminal]
Type print(pend) |
Now, let us see what pend contains, by typing
print inside parentheses pend.
|
Point to the data | We can see that pend has all the data of the file pendulum.txt.
|
[IPython Terminal]
Type pendHighlight data with newline characters |
Type just pend to see more explicitly, what it contains.
|
[IPython Terminal]
|
Let us learn to split the variable pend into a list of lines in the file.
|
[IPython Terminal]
pend_list = pend.splitlines()
|
For this we need to store this list in a variable, say pend_list
Type pend_list equal to pend dot splitlines open and close parentheses Press Enter
pend underscore list Press Enter
|
Highlight the data into list of lines | pend_list does not contain newline characters like \n.
|
Now, let us learn to read the file line-by-line. | |
[IPython Terminal]
|
But, before that we will have to close the file, since the file has already been read till the end.
Type f dot close open and close parentheses Press Enter |
[IPython Terminal]
|
It is a good programming practice to close any file objects that we have opened, after their job is done. |
Let us, now move on to reading files line-by-line. | |
Show Slide
Exercise 1
|
Pause the video here, try out the following exercise and then resume the video.
Recall, that we have closed the file earlier. |
[IPython Terminal]
Typef = open('pendulum.txt') |
Let us switch back to the terminal.
To re-open the file again, type f is equal to open inside parentheses inside quotes pendulum.txt |
[IPython Terminal]
Type for line in f: print(line)
|
Now, to read the file line-by-line, we iterate over the file object line-by-line, using the for loop.
Type for line in f colon press Enter four spaces print inside parentheses line |
[IPython Terminal]
|
Here, line is a loop variable, and it is not a keyword.
Press Enter twice.
|
[IPython Terminal]
|
Instead of just printing the lines, let us append them to a list, say line_list. |
[IPython Terminal]
Type line_list = [] |
We first initialize a line_list as an empty-list
line underscore list is equal to open and close square brackets. |
[IPython Terminal]
Type for line in open('pendulum.txt'): line_list.append(line)
|
Type the code as
four space line underscore list dot append inside parentheses line Press Enter twice.
|
We could, as usual close the file using f.close() and re-open it. | |
But, this time, let's leave alone the file object f and directly open the file within the for statement.
| |
[IPython Terminal]
Highlight data |
Let us see what line_list contains.
|
[IPython Terminal]
|
If you noticed, line underscore list is a list of the lines in the file, along with the newline characters. |
We can strip out the newline characters from the lines by using some string methods.
This will be covered in the further tutorial on strings. | |
Show Slide
Summary
|
This brings us to the end of this tutorial.
In this tutorial, we learnt to -
|
Show Slide
Summary |
# Read the data in the files line by line by iterating over the file object using the for loop.
|
Show Slide
Assignment
|
Here are some self assessment questions for you to solve
2. What does the function splitlines() do.
|
Show Slide
|
And the answers are,
|
Show Slide
Forum |
Please post your timed queries in this forum. |
Show Slide
Fossee Forum |
Please post your general queries on Python in this forum. |
Show Slide
Textbook Companion |
FOSSEE team coordinates the TBC project. |
Show Slide
Acknowledgment |
Spoken Tutorial Project is funded by NMEICT, MHRD, Govt. of India.
For more details, visit this website. |
Previous slide | This is Trupti Kini from IIT Bombay (or FOSSEE, if you wish) signing off.
Thank you. |