1、文件相关
要打开文件,可使用函数open(自动导入的模块io中)。必要的参数为文件名,并返回一个文件对象。
函数open的参数mode的最常见取值
值 | 描述 |
---|---|
‘r’ | 读取模式(默认值) |
‘w’ | 写入模式 |
‘x’ | 独占写入模式 |
‘a’ | 附加模式 |
‘b’ | 二进制模式(与其他模式结合使用) |
‘t’ | 文本模式(默认值,与其他模式结合使用) |
‘+’ | 读写模式(与其他模式结合使用) |
写入模式 ’ w ’ 让你能够写入文件,并在文件不存在时创建它。独占写入模式 ’ x ’ 更进一步,在文件已存在时引发FileExistsError异常。在写入模式下打开文件时,既有内容将被删除(截断),并从文件开头处开始写入。如果要在既有文件末尾继续写入,可使用附加模式 ’ a ’ 。
读写模式 ’ + ’ 可与其他任何模式结合使用,表示即可读取也可写入。
如果要打开一个文本文件进行读写,可使用 ’ r+ ’ 。注意,’ r+ ’ 和 ’ w+ ’ 之间有个重要差别:后者会截断文件,而前者不会。
默认模式为 ’ rt ’ ,这意味着将把文件视为经过编码的Unicode文本,因此将自动执行解码和编码,且默认使用UTF-8编码。要指定其他编码和Unicode错误处理策略,可使用关键字参数encoding和errors。这还将自动转换换行字符。默认情况下,行以 ’ \n ’ 结尾。读取时将自动替换其他行尾字符(’ \r ’ 或 ’ \r\n ‘);写入时将 ’ \n ’ 替换为系统的默认行尾字符(os.linesep)。
通常,Python使用通用换行模式。在这种模式下,后面讨论的readlines等方法能够识别所有合法的换行符(’ \n ‘、’ \r ’ 和 ’ \r\n ‘)。如果要使用这种模式,同时禁止自动转换,可将关键字参数newline设置为空字符串,如open(name,newline=’ ‘)。如果要指定只将 ’ \r ’ 或 ’ \r\n ’ 视为合法的行尾字符,可将参数newline设置为相应的行尾字符。这样,读取时不会对行尾字符进行转换,但写入时将把 ’ \n ’ 替换为指定的行尾字符。
如果文本包含非文本的二进制数据,不希望执行上述自动转换,可以使用二进制模式(如 ’ rb ‘)来禁用与文本相关的功能。
2、读取和写入
文件最重要的功能是提供和接收数据。
>>> f = open('somefile.txt','w')
>>> f.write('Hello, ')
7
>>> f.write('world!')
6
>>> f.close()
>>> f = open('somefile.txt','r')
>>> f.read(4)
'Hell'
>>> f.read()
'o, world!'
pass