打开文件
#open('文件名',‘访问模式’,encoding='编码模式')
open('test.txt','r',encoding='utf-8')
其中的编码模式可以不写,windows的操作系统默认编码为gbk,当内容有中文时,需要使用utf8编码。
但一般情况我们使用上下文管理语句with,这种方式可以自动管理资源,打开文件后如果忘记关闭文件会自动关闭文件:
#with open('文件名',‘访问模式’,encoding='编码模式') as 变量名:
with open('test.txt','w') as file_test:
print(file_test.name)
结果:test.txt
访问模式
访问模式 | 简介 | 说明 |
---|---|---|
r | 只读 | 以只读方式打开文件。文件的指针将会放在文件的开头。这是默认模式。 |
w | 写入 | 打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a | 追加 | 打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
rb | 二进制只读 | 以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。这是默认模式。 |
wb | 二级制写入 | 以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
ab | 二进制追加 | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。 |
r+ | 读写 | 打开一个文件用于读写。文件指针将会放在文件的开头。 |
w+ | 读写 | 打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
a+ | 追加读写 | 打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。 |
rb+ | 二进制读写 | 以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。 |
wb+ | 二进制读写 | 以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。 |
ab+ | 二进制追加读写 | 以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。如果该文件不存在,创建新文件用于读写。 |
文件操作
读取
读操作 | 含义 |
---|---|
file.read(size) | 从文件中读入整个文件内容,如果给出参数,读入前size长度的字符串或字节流 |
file.readline(size) | 从文件中读入一行内容,如果给出参数,读入前size长度的字符串或字节流 |
file.readlines(hint) | 从文件中读入所有行,以每行元素形成一个列表,如果给出参数则读入hint行 |
其中size和hint可以不写,则代表默认属性。
写入
写操作 | 含义 |
---|---|
file.write(str或byte) | 输出字符串或字节串。只有以二进制模式(b 模式)打开的文件才能写入字节串。 |
file.writelines(可迭代对象) | 输出多个字符串或多个字节串。 |
关闭文件
file.close()