python r r+ w w+ rb 文件打开模式的区别

#   只读模式
with open ( "file.txt" ,'r' ) as f:
for line in f.readlines():
print ( line )
# 读写,可以写,内容在文件最开头
with open ( "file.txt" ,'r+' ) as f:
#for line in f.readlines():
f.write('r+ ...')
# w : 普通的写模式,如文件不存在,则建立
# w+ : 如果文件不存在,则建立
with open ( "file.write2.txt" , 'w+' ) as f:
for line in f.read():
print (line)
f.write('w+ ...2 ')
# rb : read binary 读取一些非文本形式,二进制形式文件用到
# wb : write binary 写一些PDF,二进制形式的文件需要
英文参考如下:

The argument mode points to a string beginning with one of the following

sequences (Additional characters may follow these sequences.):

``r'' Open text file for reading. The stream is positioned at the

beginning of the file

``r+'' Open for reading and writing. The stream is positioned at the

beginning of the file.

``w'' Truncate file to zero length or create text file for writing.

The stream is positioned at the beginning of the file.

``w+'' Open for reading and writing. The file is created if it does not

exist, otherwise it is truncated. The stream is positioned at

the beginning of the file.

``a'' Open for writing. The file is created if it does not exist. The

stream is positioned at the end of the file. Subsequent writes

to the file will always end up at the then current end of file,

irrespective of any intervening fseek(3) or similar

``a+'' Open for reading and writing. The file is created if it does not

exist. The stream is positioned at the end of the file. Subse-

quent writes to the file will always end up at the then current

end of file, irrespective of any intervening fseek(3) or similar.