打开、读/写文件
poem = '''\
Programming is fun
when the work is done
if you wanna make your work also fun,
use Python
''';
#打开文件以编辑(‘w’riting)
f = open('poem.txt','w');
#向文件中编写文本
f.write(poem);
#关闭文件
f.close();
#如果没有特别指定,
#将假定启动默认的阅读(‘r'ead)
f = open("poem.txt");
while True:
line = f.readline();
#零长度指示 EOF
if len(line) == 0:
break;
#每行 (’line‘)的末尾
#都已经有了换行符
#因为它是从一个文件中进行读取得
print(line,end='');
#关闭文件
f.close();
#工作原理:
#首先,我们使用内置的open函数并指定文件名以及我们所希望使用的打开模式来打开一个
#文件。打开模式可以是阅读模式('r'),写入模式('w')和追加模式('a').我们还可以选择
#是通过文本模式('t'),还是二进制模式('b')来读取、写入或追加文本。实际上,还有很
#多的其他模式可以用,help(open)。open打开默认都是文本文件,写入追加默认也都是文本
#模式
pickle
- python的pickle模块实现了基本的数据序列和反序列化。通过pickle模块的序列化操作我们能够将程序中运行的对象信息保存到文件中去,永久存储;通过pickle模块的反序列化操作,我们能够从文件中创建上一次程序保存的对象。
-
基本接口:
pickle.dump(obj, file, [,protocol])
- 注解:将对象obj保存到文件file中去。
protocol为序列化使用的协议版本,0:ASCII协议,所序列化的对象使用可打印的ASCII码表示;
1:老式的二进制协议;2:2.3版本引入的新二进制协议,较以前的更高效。其中协议0和1兼容老版本的python。
protocol默认值为0。
file:对象保存到的类文件对象。file必须有write()接口, file可以是一个以'w'方式打开的文件
或者一个StringIO对象或者其他任何实现write()接口的对象。如果protocol>=1,文件对象需要是二进制模式打开的。
pickle.load(file)
注解:从file中读取一个字符串,并将它重构为原来的python对象。
file:类文件对象,有read()和readline()接口。
- 示例代码
import pickle;
shoplistfile = 'shoplist.data';
shoplist={'apple','mango','carrot'};
f = open(shoplistfile,'wb');
pickle.dump(shoplist,f);
f.close();
del shoplist;
f = open(shoplistfile,'rb');
storedlist=pickle.load(f);
print(storedlist);
f.close();
网友评论