文件
1、打开文件
要打开文件,可使用函数open,它位于自动导入的模块io中。函数open将文件名作为唯一必不可少的参数,并返回一个文件对象。如果当前目录中有一个名为somefile.txt文本文件,则可以像下面这样打开它:
f = open('somefile.txt')
如果文件位于其他地方,可完整指定路径(即绝对路径)。如果指定的文件不存在,将引发FileNotFoundError异常。
f = open('somefile02.txt')
FileNotFoundError: [Errno 2] No such file or directory: 'somefile02.txt'
如果想通过写入文本文件来创建文件,需要使用open函数的第二个参数。
1.1、文本模式
open函数的第二个参数mode可取多个值:
open函数的第二个参数mode可取的值 | 说明 | 功能 |
---|---|---|
r | 读取模式,默认值 | 读文件,不存在时引发FileNotFoundError异常 |
w | 写入模式 | 能够写入文件,不存在时可以创建;写入时覆盖从头开始写 |
x | 独占写入模式 | 在文件已存在时引发FileExitsError异常 |
a | 附加模式 | 不覆盖,从末尾接着写 |
b | 二进制模式(与其他模式结合使用) | |
t | 文本模拟(默认值,与其他模式结合使用) | |
+ | 读写模式(与其他模式结合使用) | 表示即可读又可写 |
默认模式为“rt”,这意味着将把文件视为经过编码的Unicode文本,因此将自动执行解码和编码,且默认使用UTF-8编码。要指定其他编码和Unicode错误处理策略,可使用关键字参数encoding和errors。
Python字符串使用Unicode编码来表示文本。每个Unicode字符都用一个码点(code point)表示,而码点是Unicode标准给每个字符指定的数字。有一种指定Unicode字符的通用机制:使用16或32位的十六进制字面值(分别加上前缀\u或\U)或者使用字符的Unicode名称(\N{name})。
print("\u00C6") #Æ
print("\U0001F60A") #😊
print("This is a cat:\N{Cat}") #This is a cat:🐈
print("This is a dog:\N{Dog}") #This is a cat:🐕
Unicode的理念很简单,但带来了一些挑战,其中之一的就是编码问题。在内存和磁盘中,所有的对象都是以二进制数字表示的,字符串也不例外。为了与C语言交互以及将文本写入文件</