多应用+插件架构,代码干净,二开方便,首家独创一键云编译技术,文档视频完善,免费商用码云13.8K 广告
# Python File(文件) 方法 ### open() 方法 Python open() 方法用于打开一个文件,并返回文件对象,在对文件进行处理过程都需要使用到这个函数,如果该文件无法被打开,会抛出 OSError。 **注意:**使用 open() 方法一定要保证关闭文件对象,即调用 close() 方法。 open() 函数常用形式是接收两个参数:文件名(file)和模式(mode)。 ~~~ open(file, mode='r') ~~~ 完整的语法格式为: ~~~ open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None) ~~~ 参数说明: * file: 必需,文件路径(相对或者绝对路径)。 * mode: 可选,文件打开模式 * buffering: 设置缓冲 * encoding: 一般使用utf8 * errors: 报错级别 * newline: 区分换行符 * closefd: 传入的file参数类型 * opener: mode 参数有: ![](https://img.kancloud.cn/ba/01/ba0107464eb638711b9f0a21b4e47ad7_835x527.png) ![](https://img.kancloud.cn/1e/35/1e354f9b6b9b24f4121c6d124e0c7ab0_834x402.png) 默认为文本模式,如果要以二进制模式打开,加上b。 ### file 对象 file 对象使用 open 函数来创建,下表列出了 file 对象常用的函数: ![](https://img.kancloud.cn/56/c8/56c82b028be082eb1b63400e9995c4c8_834x427.png) ![](https://img.kancloud.cn/4a/4a/4a4a509fd9493ce813aaf13aeb4fb648_835x470.png) 在 write 内容后,直接 read 文件输出会为空,是因为指针已经在内容末尾。 **两种解决方式: 其一,先 close 文件,open 后再读取,其二,可以设置指针回到文件最初后再 read** ~~~ import os; document = open("testfile.txt", "w+"); print "文件名: ", document.name; document.write("这是我创建的第一个测试文件!\nwelcome!"); print document.tell(); #输出当前指针位置 document.seek(os.SEEK_SET); #设置指针回到文件最初 context = document.read(); print context; document.close(); ~~~ 为了保证无论是否出错都能正确地关闭文件,我们可以使用try ... finally来实现: ~~~ try: f = open('/path/to/file', 'r') print f.read() finally: if f: f.close() ~~~ 但是每次都这么写实在太繁琐,所以,Python 引入了with语句来自动帮我们调用**close()**方法: ~~~ with open('/path/to/file', 'r') as f: print f.read() ~~~ 这和前面的try ... finally是一样的,但是代码更佳简洁,并且不必调用**f.close()**方法。