Python 3 - Files I - O - Tutorialspoint
Python 3 - Files I - O - Tutorialspoint
This chapter covers all the basic I/O functions available in Python 3. For more functions, please refer to
the standard Python documentation.
The simplest way to produce output is using the print statement where you can pass zero or more
expressions separated by commas. This function converts the expressions you pass into a string and
writes the result to standard output as follows −
Live Demo
#!/usr/bin/python3
Python 2 has two built-in functions to read data from standard input, which by default comes from the
keyboard. These functions are input() and raw_input()
In Python 3, raw_input() function is deprecated. Moreover, input() functions read data from keyboard as
string, irrespective of whether it is enclosed with quotes ('' or "" ) or not.
The input([prompt]) function is equivalent to raw_input, except that it assumes that the input is a valid
Python expression and returns the evaluated result to you.
#!/usr/bin/python3
>>> x = input("something:")
something:10
>>> x
'10'
>>> x = input("something:")
something:'10' #entered data treated as string with or without ''
>>> x
"'10'"
Until now, you have been reading and writing to the standard input and output. Now, we will see how to
use actual data files.
Python provides basic functions and methods necessary to manipulate files by default. You can do most
of the file manipulation using a file object.
Syntax
file_name − The file_name argument is a string value that contains the name of the file that you
want to access.
access_mode − The access_mode determines the mode in which the file has to be opened, i.e.,
read, write, append, etc. A complete list of possible values is given below in the table. This is an
optional parameter and the default file access mode is read (r).
buffering − If the buffering value is set to 0, no buffering takes place. If the buffering value is 1,
line buffering is performed while accessing a file. If you specify the buffering value as an integer
greater than 1, then buffering action is performed with the indicated buffer size. If negative, the
buffer size is the system default(default behavior).
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.
Once a file is opened and you have one file object, you can get various information related to that file.
1
file.closed
2
file.mode
3
file.name
Example
Live Demo
#!/usr/bin/python3
# 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)
fo.close()
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.
Syntax
fileObject.close();
Example
Live Demo
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "wb")
print ("Name of the file: ", fo.name)
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
The write() method writes any string to an open file. It is important to note that Python strings can have
binary data and not just text.
The write() method does not add a newline character ('\n') to the end of the string −
Syntax
fileObject.write(string);
Here, passed parameter is the content to be written into the opened file.
Example
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "w")
fo.write( "Python is a great language.\nYeah its great!!\n")
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 the following content −
The read() method reads a string from an open file. It is important to note that Python strings can have
binary data. apart from text data.
Syntax
fileObject.read([count]);
Here, passed parameter is the number of bytes to be read from the opened 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,
maybe until the end of file.
Example
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)
File Positions
The tell() method tells you the current position within the file; in other words, the next read or write will
occur at that many bytes from the beginning of the file.
The 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, the beginning of the file is used as the reference position. If it is set to 1, the current
position is used as the reference position. If it is set to 2 then the end of the file would be taken as the
reference position.
Example
#!/usr/bin/python3
# Open a file
fo = open("foo.txt", "r+")
str = fo.read(10)
print ("Read String is : ", str)
To use this module, you need to import it first and then you can call any related functions.
Syntax
os.rename(current_file_name, new_file_name)
Example
#!/usr/bin/python3
import os
Syntax
os.remove(file_name)
Example
#!/usr/bin/python3
import os
# Delete file test2.txt
os.remove("text2.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.
Syntax
os.mkdir("newdir")
Example
#!/usr/bin/python3
import os
Syntax
os.chdir("newdir")
Example
#!/usr/bin/python3
import os
Syntax
os.getcwd()
Example
#!/usr/bin/python3
import os
The rmdir() method deletes the directory, which is passed as an argument in the method.
Syntax
os.rmdir('dirname')
Example
Following is an example to remove the "/tmp/test" directory. It is required to give fully qualified name of
the directory, otherwise it would search for that directory in the current directory.
#!/usr/bin/python3
import os
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 −
OS Object Methods