在4-2-1节讲解了在print()函数中,默认输出是屏幕sys.stdout,其实我们可以利用这个特性将输出导向一个文档。
open()函数可以打开一个文档供读取或写入,如果这个函数执行成功,会返回文件流对象,这个函数的基本使用格式如下。
fi le_Obj=open(fi le, mode=''r'') #左边只列出最常用的两个参数
(1)fi le:用字符串列出将要打开的文档。
(2)mode:打开文档的模式,如果省略代表是 mode= ''r'',使用时如果 mode= ''w''或其他,也可以省略 mode= ,直接写“w”。也可以同时具有多个模式,例如,“wb”代表以二进制文件打开供写入,可以是下列基本模式。
① “r”: 这是默认设置,打开文档供读取(read)。
② “w”: 打开文档供写入,如果原先文档有内容将被覆盖。
③ “a”: 打开文档供写入,如果原先文档有内容,新写入数据将追加在后面。
④ “x”: 打开一个新的文档供写入,如果所打开的文档已经存在会产生错误。
⑤ “b”: 打开二进制文件模式。
⑥ “t”: 打开本文(txt)文件模式。
⑦ “+”: 打开文档供更新用。
(3)fi le_Obj:这是文档对象,读者可以自定义名称,print()函数可以将输出导向此对象,不使用时要关闭fi le_Obj.close(),才可以返回操作系统的文件管理器观察执行结果。
程序实例ch4_13.py:将数据输出到文档的实例,其中,输出到out1.txt采用“w”模式,输出到out2.txt采用“a”模式。
执行结果
如果执行程序一次,可以得到内容相同的out1.txt和out2.txt。但是如果持续执行,out2.txt内容会持续增加,out1.txt内容则保持不变,下面是执行两次此程序后,out1.txt和out2.txt的内容。