(7) 'rb’模式
测试代码:
with open(‘ZR.ico’, ‘rb’) as f:
for linein f:
print(line)
以二进制方式读取文件,可读取图片文件。
也可以读取文本文件:
with open(‘test.txt’, ‘rb’) as f:
for linein f:
print(line)
输出:
b’w+ mode Demoa+ mode test’
(8) 'rb+'模式
读取文本文件:
with open(‘test.txt’, ‘rb+’) as f:
for linein f:
print(line)
输出:
b’w+ mode Demoa+ mode test’
因为’rb+’ 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头
可以写入内容的,但是指针移到文件头,会覆盖内容的。
data =b’30’
with open(‘test.txt’, ‘rb+’) as f:
f.write(data)
效果如下:
数据覆盖了前面的内容。
(9) 'wb’模式
以二进制格式打开一个文件只用于写入,如果文件存在,则覆盖,如果文件不存在,创建新文件。
测试代码:
with open(‘test.txt’, ‘wb’) as f:
f.write(b'12345')
效果如下:
之前的内容完全覆盖。只存在新写入的内容。
(10) 'wb+'模式
以二进制格式打开一个文件用于读写。如果文件存在,则覆盖,如果文件不存在,创建新文件。
测试代码如下:
写数据测试:
with open(‘test.txt’, ‘wb+’) as f:
f.write(b'test write function')
效果:
写是覆盖的方式
读取数据测试:
with open(‘test.txt’, ‘wb+’) as f:
lines = f.readline()
print(lines)
任何文件读取的数据都是空,文件操作后都被清除,不知道为什么!
图片文件测试读后,图片内容被清除,文件损坏。
(11) 'ab’模式
以二进制格式打开一个文件用于追加。如果文件存在,文件指针会放在文件结尾,新的内容被追加在已有的内容之后。如果文件不存在,创建新文件写入。
测试追加数据:
with open(‘test.txt’, ‘ab’)as f:
f.write(b'This append text')
效果:
写入的数据追加在原始文件的末尾。
如指定文件不存,则创建新文件,并写入内容。
with open(‘test5.txt’, ‘ab’) as f:
f.write(b'ab for new file')
效果:
(12) 'ab+'模式
以二进制格式打开一个文件用于读写。如果文件存在,则追加,如果文件不存在,创建新文件读写。
追加内容测试:
with open(‘test.txt’, ‘ab+’) as f:
f.write(b'ab+ append text')
效果:
指定文件不存在,创建新文件并写入测试:
with open(‘test6.txt’, ‘ab+’) as f:
f.write(b'ab+ append text with new FILE')
效果:
创建了新文件,并写入了数据。