Files I/O
S.Madhumalar
Assistant Professor
C.P.A College, Bodinayakanur
Python Files I/O
Printing to the Screen:
print "Python is really a great language,", "isn't it?";
Python is really a great language, isn't it?
Reading Keyboard Input:
Python provides two built-in functions to read a line of text from standard input, which by default comes from the keyboard. These functions are:
raw_input
input
The raw_input Function:
str = raw_input("Enter your input: ");
print "Received input is : ", str
Enter your input: Hello Python
Received input is : Hello Python
str = input("Enter your input: ");
print "Received input is : ", str
Enter your input: [x*5 for x in range(2,10,2)]
Recieved input is : [10, 20, 30, 40]
Opening and Closing Files:
Before you can read or write a file, you have to open it using Python's built-in open() function. This function creates a file object which would be utilized to call other support methods associated with it.
file object = open(file_name [, access_mode][, buffering])
Paramters detail:
A list of the different modes of opening a file:
Modes | Description |
r | Opens a file for reading only. The file pointer is placed at the beginning of the file. This is the default mode. |
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. |
r+ | Opens a file for both reading and writing. The file pointer will be at the beginning of the file. |
rb+ | Opens a file for both reading and writing in binary format. The file pointer will be at the beginning of the file. |
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. |
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. |
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. |
A list of the different modes of opening a file:
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. |
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. |
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. |
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. |
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 atrributes:
Once a file is opened and you have one file object, you can get various information related to that file.
Here is a list of all attributes related to file object:
Attribute | Description |
file.closed | Returns true if file is closed, false otherwise. |
file.mode | Returns access mode with which file was opened. |
file.name | Returns name of the file. |
file.softspace | Returns false if space explicitly required with print, true otherwise. |
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
Name of the file: foo.txt
Closed or not : False
Opening mode : wb
Softspace flag : 0
The close() Method:
The close() method of a file object flushes any unwritten information and closes the file object, after which no more writing can be done.
Python automatically closes a file when the reference object of a file is reassigned to another file. It is a good practice to use the close() method to close a file.
fileObject.close();
Example:
fo = open("foo.txt", "wb")
print "Name of the file: ", fo.name
fo.close()
Name of the file: foo.txt
Reading and Writing Files:
The file object provides a set of access methods to make our lives easier. We would see how to use read() and write() methods to read and write files.
The write() Method:
Syntax:
fileObject.write(string);
Example:
fo = open("foo.txt", "wb")
fo.write( "Python is a great language.\r\nYeah its great!!\r\n");
fo.close()
The above method would create foo.txt file and would write given content in that file and finally it would close that file. If you would open this file, it would have following content
Python is a great language.
Yeah its great!!
The read() Method:
The read() method read a string from an open file. It is important to note that Python strings can have binary data and not just text.
Syntax:
fileObject.read([count]);
Here passed parameter is the number of bytes to be read from the opend file. This method starts reading from the beginning of the file and if count is missing then it tries to read as much as possible, may be until the end of file.
Example:
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
fo.close()
This would produce following result:
Read String is : Python is
File Positions:
Example:
fo = open("foo.txt", "r+")
str = fo.read(10);
print "Read String is : ", str
position = fo.tell();
print "Current file position : ", position
position = fo.seek(0, 0);
str = fo.read(10);
print "Again read String is : ", str
fo.close()
Read String is : Python is
Current file position : 10
Again read String is : Python is
Renaming and Deleting Files:
The rename() Method:
The rename() method takes two arguments, the current filename and the new filename.
Syntax:
os.rename(current_file_name, new_file_name)
Example:
import os
os.rename( "test1.txt", "test2.txt" )
The delete() Method:
You can use the delete() method to delete files by supplying the name of the file to be deleted as the argument.
Syntax:
os.remove(file_name)
Example:
import os
os.remove("test2.txt")
Directories in Python:
All files are contained within various directories, and Python has no problem handling these too. The os module has several methods that help you 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:
import os # Create a directory "test"
os.mkdir("test")
The chdir() Method:
You can use the chdir() method to change the current directory. The chdir() method takes an argument, which is the name of the directory that you want to make the current directory.
Syntax:
os.chdir("newdir")
Example:
import os
os.chdir("/home/newdir")
The getcwd() Method:
The getcwd() method displays the current working directory.
Syntax:
os.getcwd()
Example:
import os
os.getcwd()
The rmdir() Method:
The rmdir() method deletes the directory, which is passed as an argument in the method.
Before removing a directory, all the contents in it should be removed.
Syntax:
os.rmdir('dirname')
Example:
import os
os.rmdir( "/tmp/test" )
File & Directory Related Methods:
There are three important sources which provide a wide range of utility methods to handle and manipulate files & directories on Windows and Unix operating systems. They are as follows: