在4-2-1节笔者曾经讲解在print( )函数中,默认输出是屏幕sys.stdout,其实我们可以利用这个特性将数据输出到一个文件。
open( )函数可以打开一个文件供读取或写入,如果这个函数执行成功,会回传文件对象,这个函数的基本使用格式如下:
file_Obj = open(file, mode="r") # 左边只列出最常用的2个参数
file: 用字符串列出欲打开的文件,如果不指定则开启目前工作文件夹。
mode: 打开文件的模式,如果省略,代表是 mode=“r” ,使用时如果 mode=“w” 或其他,也可以省略 mode= ,直接写“w”。也可以同时具有多项模式,例如,“wb”代表以二进制文件打开供写入,可以是下列基本模式。下列是第一个字母的操作意义。
· “r”:这是预设,打开文件供读取(read)。
· “w”:打开文件供写入,如果原先文件有内容将被覆盖。
· “a”:打开文件供写入,如果原先文件有内容,新写入数据将附加在后面。
· “x”:打开一个新的文件供写入,如果所打开的文件已经存在会产生错误。
下列是第二个字母的意义,代表文件类型。
· “b”:打开二进制文件模式。
· “t”:打开本文(txt)文件模式,这是默认的。
file_Obj: 文件对象,读者可以自行给予名称,未来print( )函数可以将输出导向此对象,不使用时要关闭“file_Obj.close( )”,才可以返回操作系统的文件管理器观察执行结果。
程序实例ch4_21.py: 将数据输出到文件的实例,其中输出到out1.txt采用“w”模式,输出到out2.txt采用“a”模式。
这个程序执行后,须至ch4文件夹查看执行结果。如果执行只程序一次,可以得到内容相同的out1.txt和out2.txt。但是如果持续执行,out2.txt内容会持续增加,out1.txt内容则保持不变。下列是执行2次此程序,out1.txt和out2.txt的内容。