Hello dear readers! Welcome back to another edition of our tutorial on Python. In this tutorial guide, we are going to be studying about the Python Files I/O. We are going to be looking into the basic file I/O functions available in Python. For more functions, kindly refer to the standard Python documentation.
Printing to the Screen
The easiest way to produce output is by using the print statement where you can pass zero or more expressions that are separated by commas. This function converts the expressions you pass into a string and writes the result into a standard output.
Example
Below is a simple example which illustrates how to print an output to the screen -
#!/usr/bin/python print "Python is really a great language,", "isn't it?"
Output
This will produce the following result on your standard screen -
Python is really a great language, isn't it?
RECOMMENDED: Python Modules and Packages Tutorial with examples
Reading Keyboard Input
Python makes available two built-in functions to read a line of text from a standard input, that comes in from the computer keyboard by default. These functions are -
- raw_input
- input
The raw_input Function
The raw_input([prompt]) function reads one line from standard input and returns it as a string.
#!/usr/bin/python str = raw_input("Enter your input: ") print "Received input is : ", str
Output
This is going to prompt you to enter any string and it displays the same string on the screen. When i typed "Hello Python!", its result will be like this -
Enter your input: Hello Python Received input is : Hello Python
The Input Function
Python input([prompt]) function is equivalent to the raw_input, except that it assumes the input is a valid Python expression and then gives back the evaluated result to you -
#!/usr/bin/python str = input("Enter your input: ") print "Received input is : ", str
Output
When the above code is executed, it produces the following result against the entered input -
Enter your input: [x*5 for x in range(2,10,2)] Recieved input is : [10, 20, 30, 40]
RECOMMENDED POST: Python Functions with examples
Opening and Closing Files
Until now, you have been reading and writing to the standard input and output. Now we will learn how to use actual data files.
Python provides basic functions and methods that are necessary in manipulating files by default. You can perform most of the file manipulation using a file object.
Python provides basic functions and methods that are necessary in manipulating files by default. You can perform most of the file manipulation using a file object.
The open Function
Before being able to read or write a file, you will have to open it using the Python built-in open() function. This function creates a file object, which will be utilized to call other support methods associated with it.
Syntax
Following below is the syntax of Python open() function -
file object = open(file_name [, access_mode][, buffering])
Parameter Details
- file_name - The file_name argument is a string value that contains the name of the file that you want to access.
- access_mode - access_mode decides the mode in which the file has to be opened, that is read, write, append, and so on. A full list of possible values is given below in the table. It is an optional parameter and the default mode of accessing files is read (r).
- buffering - If buffer value is set to 0, then no buffering takes place. If the buffering value is 1, line buffering is performed while accessing the file. If the buffering is been specified as integer than 1, then the buffer action will be performed with the indicated buffer size. If negative, the buffer size is the system's default.
RECOMMENDED POST: Python Dictionary values() Method
Following below is the list of the various modes of opening a file -
Sr.No. | Modes & Description |
---|---|
1 |
r
Opens a file for reading only. The file pointer is placed at the beginning of the file. This is the default mode.
|
2 |
rb
Opens a file for reading only in binary format. The file pointer is placed at the beginning of the file. This is the default mode.
|
3 |
r+
Opens a file for both reading and writing. The file pointer placed at the beginning of the file.
|
4 |
rb+
Opens a file for both reading and writing in binary format. The file pointer placed at the beginning of the file.
|
5 |
w
Opens a file for writing only. Overwrites the file if the file exists. If the file does not exist, creates a new file for writing.
|
6 |
wb
Opens a file for writing only in binary format. Overwrites the file if the file exists. If the file does not exist, creates a new file for writing.
|
7 |
w+
Opens a file for both writing and reading. Overwrites the existing file if the file exists. If the file does not exist, creates a new file for reading and writing.
|
8 |
wb+
Opens a file for both writing and reading in binary format. Overwrites the existing file if the file exists. If the file does not exist, creates a new file for reading and writing.
|
9 |
a
Opens a file for appending. The file pointer is at the end of the file if the file exists. That is, the file is in the append mode. If the file does not exist, it creates a new file for writing.
|
10 |
ab
Opens a file for appending in binary format. The file pointer is at the end of the file if the file exists. That is, the file is in the append mode. If the file does not exist, it creates a new file for writing.
|
11 |
a+
Opens a file for both appending and reading. The file pointer is at the end of the file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new file for reading and writing.
|
12 |
ab+
Opens a file for both appending and reading in binary format. The file pointer is at the end of the file if the file exists. The file opens in the append mode. If the file does not exist, it creates a new file for reading and writing.
|
The file Object Attributes
Once a file is opened and you have 1 file object, you can then get the various information related to that file -
The following below is the list of attributes related to the file object -
The following below is the list of attributes related to the file object -
Sr.No. | Attribute & Description |
---|---|
1 |
file.closed
Returns true if file is closed, false otherwise.
|
2 |
file.mode
Returns access mode with which file was opened.
|
3 |
file.name
Returns name of the file.
|
4 |
file.softspace
Returns false if space explicitly required with print, true otherwise.
|
RECOMMENDED POST: Python Dictionary copy() Method with example
Example
The following below is a simple example -
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name print "Closed or not : ", fo.closed print "Opening mode : ", fo.mode print "Softspace flag : ", fo.softspace
Output
When the above code is executed, it will produce the following result -
Name of the file: foo.txt Closed or not : False Opening mode : wb Softspace flag : 0
The close() Method
The Python close() method of the file object flushes away un-written information and it closes the file object, after which no more writing can be made.
Python will automatically close a file when the reference object of a file is re-assigned to some other file. Its a very good practice to use the close() method to close a file.
Python will automatically close a file when the reference object of a file is re-assigned to some other file. Its a very good practice to use the close() method to close a file.
Syntax
Following below is the syntax of the close() method -
fileObject.close()
Example
The following below is a simple example -
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") print "Name of the file: ", fo.name # Close opend file fo.close()
Output
When the above code is executed, it will produce the following result -
Name of the file: foo.txt
RECOMMENDED: Python Tuple len() Method
Reading and Writing Files
The file object provides us with a set of access methods to make your life more easier. We will be discussing about how to make use of the read() and write() methods in reading and writing files.
The Write() Method
The Python write() method writes any string to an open file. It is very important to note that the Python strings can have binary data and not just text.
The Python write() method does not add a newline character ('\n') to the end of the string.
The Python write() method does not add a newline character ('\n') to the end of the string.
Syntax
fileObject.write(string)
Here, the passed parameter is the content that is to be written into the opened file.
Example
The following below is a simple example -
#!/usr/bin/python # Open a file fo = open("foo.txt", "wb") fo.write( "Python is a great language.\nYeah its great!!\n") # Close opend file fo.close()
Output
The above method would create the foo.txt file and would write given content in that file and finally it would close that file. If you open this file, it will have the following content -
Python is a great language. Yeah its great!!
RECOMMENDED: Python List pop() Method
The read() Method
The Python read() method reads a string from an open file. It is very important to note that the Python strings can have binary data aside from text data.
Syntax
fileObject.read([count])
Here, the passed parameter is the number of bytes to be read from the opened file. This method will start reading from the beginning of the file and if count is missing, then it tries to read as much as possible, maybe until the end of the file.
Example
Let us take a file foo.txt, which we created above -
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10); print "Read String is : ", str # Close opend file fo.close()
Output
When the above code is executed, it will produce the following result -
Read String is : Python is
File Positions
The Python tell() method tells you the current position in the file. In other words, the next read or write will occur at that many bytes from the beginning of the file.
Python Seek(offset[, from]) method changes the current file position. The offset argument indicates the number of bytes to be moved. The from argument specifies the reference position from where the bytes are to be moved.
If from is set to 0, it simply means use the beginning of the file as the reference position. If set to 1, then it means use the current position in the file as the reference position and if set to 2, the end of the file would be taken as the reference position.
Python Seek(offset[, from]) method changes the current file position. The offset argument indicates the number of bytes to be moved. The from argument specifies the reference position from where the bytes are to be moved.
If from is set to 0, it simply means use the beginning of the file as the reference position. If set to 1, then it means use the current position in the file as the reference position and if set to 2, the end of the file would be taken as the reference position.
Example
Let's take a file foo.txt, which we created above -
#!/usr/bin/python # Open a file fo = open("foo.txt", "r+") str = fo.read(10) print "Read String is : ", str # Check current position position = fo.tell() print "Current file position : ", position # Reposition pointer at the beginning once again position = fo.seek(0, 0); str = fo.read(10) print "Again read String is : ", str # Close opend file fo.close()
Output
When the above code is executed, it will produce the following result -
Read String is : Python is Current file position : 10 Again read String is : Python is
RECOMMENDED POST: Python List remove() Method
Renaming and Deleting Files
The Python os module provides methods which help to perform file-processing operations, such as to rename and delete files.
In order to use this module you need to import it first and then you can call any related functions.
In order to use this module you need to import it first and then you can call any related functions.
The rename() Method
Python's rename() method takes in two arguments, that is the current filename and the new filename.
Syntax
os.rename(current_file_name, new_file_name)
Example
The following is the example to rename an existing file test1.txt -
#!/usr/bin/python import os # Rename a file from test1.txt to test2.txt os.rename( "test1.txt", "test2.txt" )
The remove() Method
You can use the remove() method for deleting files by supplying the name of the file to be deleted as the argument.
Syntax
os.remove(file_name)
Example
The following is the example to remove an existing file text2.txt -
#!/usr/bin/python import os # Delete file test2.txt os.remove("text2.txt")
RECOMMENDED POST: Python List index() Method
Directories in Python
All files are contained in different directories in Python, and Python has no issue handling these too. The os module has different types of methods that helps to create, remove, and change directories.
The mkdir() Method
You can use the mkdir() method of the os module to create directories in the current directory. You need to supply an argument to this method which contains the name of the directory to be created.
Syntax
os.mkdir("newdir")
Example
The following below is an simple example to create a directory test in a directory -
#!/usr/bin/python import os # Create a directory "test" os.mkdir("test")
The chdir() Method
You can use the chdir() Method of the os module to change current directory. Python chdir() method takes an argument, which is the name of the directory you want to make the current directory.
Syntax
os.chdir("newdir")
Example
The following below is a simple example to go into "home/newdir" directory -
#!/usr/bin/python import os # Changing a directory to "/home/newdir" os.chdir("/home/newdir")
The getcwd() Method
The getcwd() method displays the current working directory.
Syntax
os.getcwd()
Example
Following is a simple example to give current directory -
#!/usr/bin/python import os # This would give location of the current directory os.getcwd()
The rmdir() Method
The Python rmdir() method deletes the directory, which is passed as an argument in the method.
Before removing a directory, all the content in it should be removed.
Before removing a directory, all the content in it should be removed.
Syntax
os.rmdir('dirname')
Example
Following is an example to remove "/tmp/test" directory. It is required that you give a complete qualified name of the directory, else it is going to search for that directory in the current directory.
#!/usr/bin/python import os # This would remove "/tmp/test" directory. os.rmdir( "/tmp/test" )
RECOMMENDED POST: Python List append() Method
File and Directory Related Methods
There are three important sources, that provides a wide range of utility methods to handle and also manipulate files and directories on Windows and Unix OS. They are as follows -
- File Object Methods - The file object provides us with the functions to manipulate files.
- Os Object Methods - This provides methods to process files and directories.
Alright guys! This is where we are rounding up for this tutorial guide. In our next tutorial, we are going to be studying about the Python File Object Methods.
Feel free to ask your questions where necessary and i will attend to them as soon as possible. If this tutorial was helpful to you, you can use the share button to share this tutorial.
Follow us on our various social media platforms to stay updated with our latest tutorials. You can also subscribe to our newsletter in order to get our tutorials delivered directly to your emails.
Thanks for reading and bye for now.
Feel free to ask your questions where necessary and i will attend to them as soon as possible. If this tutorial was helpful to you, you can use the share button to share this tutorial.
Follow us on our various social media platforms to stay updated with our latest tutorials. You can also subscribe to our newsletter in order to get our tutorials delivered directly to your emails.
Thanks for reading and bye for now.