Python 内建的 open() 函式可用来开启档案,它会传回一个档案对象,然后我们即可用档案对象的 read(), close() 等方法来操作档案。例如:
f = open('a.txt') # 以读取模式开启 a.txt 文件并传回一个档案对象
data = f.read() # 读取档案内容
f.close() # 关闭档案
开启档案时的参数设定
在使用 open() 开启档案时,较常用的参数有3 个:
open(filename, mode, encoding=编码方式) # 后面两个参数可省略
filename 参数为文件名,可以是相对路径(例如:a.txt)或绝对路径(例如:c:/pybook/a.txtx)。只有 filename 参数时,表示要用读取模式开启已存在的文本文件,例如:
f1 = open('a.txt')
f2 = open('sub/b.txt')
f3 = open('c:/py/c.txt')
mode 参数为开启模式,常用的模式有以下 3 种:
如果要开启的档案不存在,用 “r” 开启时会发生 FileNotFoundError 的异常错误,因为无法读取。用 “w” 或 “a” 开启则会先建立档案以供写入数据。
也可在模式后面加 + 表示可以「读+写」,若加 t 或 b 则表示要以文本模式或二进制模式开启档案,未指定时预设为文本模式。
encoding 参数为档案的编码方式,常用的有 ‘utf-8’。此参数要以指名参数(encoding=)来指定。例如:
f = open('a.txt', encoding='utf-8')
档案的读写与关闭
档案对象的常用操作方法有以下几种:
档案在使用完之后要记得用 close() 关闭,否则档案可能会被锁定而导致其他程序无法开启。
使用 with 确保外部资源(如档案)在用完后会关闭
当我们开启外部资源时,例如开启档案、摄影机或麦克风等,在使用完毕后必须记得将之关闭,以免持续占用资源而导致其他程序无法使用。使用 with 指令可以确保资源在使用后会自动关闭,这样就不会担心忘记关了。
with 的用法就是将「变量 = open(…)」改写成:
with open(….) as 变数:
程序区块
在 with 的程序区块中可以开启资源(如档案)进行各种操作,当区块结束时,Python 就会自动将开启的资源关闭,因此也不需要再使用 close() 来关闭。例如:
with open('a.txt') as f:
s = f.read(5)
参考:
《Python 技术者们实践!》施威铭研究室 着,旗标出版社