Open file with default mode
f = open("test.txt") # opening a file from current directory
f = open("c:/temp/readme.txt") #open by specifying full path
Open file with specific mode
f = open("test.txt") # equivalent to 'r' or 'rt'
f = open("test.txt",'w') # write in text mode
f = open("img.bmp",'r+b') # read and write in binary mode
f = open("test.txt",mode = 'r',encoding = 'utf-8')
Mode
Purpose
r
Open for read (default)
w
Open for write.
Creates new if not found, Truncates if exists
x
Open exclusively for creation.
Fail if file exists
a
Open for append
Creates new if not found.
Appends if exist
t
Open in text mode (default)
b
Open in binary mode
+
Open for updating - both read and write
Close a file
f = open("test.txt",encoding = 'utf-8')
# perform file operations
f.close()
or better
try:
f = open("test.txt",encoding = 'utf-8')
# perform file operations
finally:
f.close()
Write to a file
with open("test.txt",'w',encoding = 'utf-8') as f:
f.write("my first file\n")
f.write("This file\n\n")
f.write("contains three lines\n")
Read a file
>>> f = open("test.txt",'r',encoding = 'utf-8')
>>> f.read(4) # read the first 4 data
'This'
>>> f.read(4) # read the next 4 data
' is '
>>> f.read() # read in the rest till end of file
'my first file\nThis file\ncontains three lines\n'
>>> f.read() # further reading returns empty sting
''
Show current file position
>>> f.tell() # get the current file position
56
Jump to a file position
>>> f.seek(0) # bring file cursor to initial position
0
Read line by line in a for loop
>>> for line in f:
... print(line, end = '')
# the variable line itself would contain newline \n read from the file
# set the end parameter for print() function to avoid double printing newline
Read only one line
f.readline() # read one line from the current position
Read all lines from current position to end of file
f.readlines()
Returns a list of lines
e.g.
['first line\n','second line\n','third line\n']
full list of file methods
f = open("test.txt",'r+a',encoding = 'utf-8')
f.method :-
Method
Description
close()
Close an open file. It has no effect if the file is already closed.
detach()
Separate the underlying binary buffer from the TextIOBase
and return it.
fileno()
Return an integer number (file descriptor) of the file.
flush()
Flush the write buffer of the file stream.
isatty()
Return True
if the file stream is interactive.
read(n )
Read atmost n characters form the file. Reads till end of file if it is negative or None
.
readable()
Returns True
if the file stream can be read from.
readline(n =-1)
Read and return one line from the file. Reads in at most n bytes if specified.
readlines(n =-1)
Read and return a list of lines from the file. Reads in at most n bytes/characters if specified.
seek(offset ,from =SEEK_SET
)
Change the file position to offset bytes, in reference to from (start, current, end).
seekable()
Returns True
if the file stream supports random access.
tell()
Returns the current file location.
truncate(size =None
)
Resize the file stream to size bytes. If size is not specified, resize to current location.
writable()
Returns True
if the file stream can be written to.
write(s )
Write string s to the file and return the number of characters written.
writelines(lines )
Write a list of lines to the file.
Please enable JavaScript to view the comments powered by Disqus.