文件读写
open()
函数用于创建文件对象,最常使用两个参数: flename, mode
open(filename, mode)
f = open('workfile', 'w') #以写模式打开workfile文件
- filename为文件名字符串
- mode为文件的使用模式字符串
mode 为 ‘r’ 表示只读, ‘w’ 表示只写,如果文件已存在会被清空, ‘a’ 表示追加写, 数据被写到文件尾部. ‘r+’ 表示可读可写.,mode 参数如果不提供将会默认为 ‘r’。
默认情况下,文件以文本的模式被打开,客户端与文件的交互,无论是读还是写都是基于特定编码的字符串完成的,编码可作为额外参数提供,默认编码取决与操作系统。通过在mode参数中使用’b’标识符,表示以二进制模式打开文件,该模式下与文件的交互,无论读还是写,数据都是以字节对象形式完成的。
文本模式下,默认情况下换行符有统一的处理逻辑:读取文件数据时,平台特定的换行符(\n - Unix, \r\n - Windows)会被统一转换为’\n’,反之,写数据到文件时,所有’\n’又会被自动转换为平台特定的换行符后再写入文件。对于非文本文件比如如可执行文件和图片,这套逻辑可能会导致数据损坏。
自动关闭文件
涉及到文件对象处理时,一般和with一起使用,使得即使文件使用中途出现异常,在使用后都会自动关闭,而不用显式的try_finally。
>>> with open('workfile') as f:
... read_data = f.read()
>>> f.closed
True