Character | Meaning |
---|---|
‘r’ | open for reading (default) |
‘w’ | open for writing, truncating the file first |
‘a’ | open for writing, appending to the end of the file if it exists |
‘b’ | binary mode |
‘t’ | text mode (default) |
‘+’ | open a disk file for updating (reading and writing) |
‘U’ | universal newline mode (for backwards compatibility; should not be used in new code) |
模式 | 描述 |
---|---|
rt | 读取文本,默认模式 |
rb | 读取二进制数据 |
wt | 写入文本 |
wb | 写入二进制 |
r+ | 不清空原文件,读写 |
w+ | 清空原文件,并读写 |
a+ | 在文件末尾读写 |
首先在左面新建一个”abc.txt”的文件,文件的内容入如下:
I
love
CSDN
只读模式(默认模式)
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","r")
>>>>print(f.read())
I
love
CSDN
>>>>f.close()
写入模式
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","w")
>>>>f.write("test")
>>>>f.close()
输出的结果是:
test
在使用”w”模式时,python会把原来的文件给覆盖掉,形成新的文件,这里注意如果写入的文件不存在,python会自动新建一个文件。
追加模式
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","a")
>>>>f.write("test")
>>>>f.close()
输出的结果是:
I
love
CSDNtest
另外我们还可以设定读取和写入的方式:
以二进制方式读取:
>>>>f=open("C:/Users/Administrator/Desktop/abc.txt","rb")
>>>>print(f.read())
>>>>f.close()
b'I\r\nlove\r\nCSDN'
而以二进制读取的一个妙用就是保存matplotlib的交互式图片页面:
保存交互式图片页面
import matplotlib.pyplot as plt
import pickle as pl
#调用matplotlib的figure对象
fig = plt.figure()
x = [1,2,3,4,5]
y = [1,2,3,4,5]
plt.plot(x,y)
#序列化figure对象,并保存
pl.dump(fig,open('C:/Users/Administrator/Desktop/fig.pickle','wb'))
读取交互式页面:
import matplotlib.pyplot as plt
import pickle as pl
# 载入序列化文件
fig = pl.load(open('C:/Users/Administrator/Desktop/fig.pickle','rb'))
plt.show()
# 获得图片信息
print(fig.axes[0].lines[0].get_data())