Python 读写文件 with open() as
Python 读写文件 with open() as
·
1 概述
1. 传统文件读写,容易犯的问题
(1) 忘记 '关闭文件'
(2) 文件读写 '异常' 时,未做处理
2. with as 读写
(1) 自动处理上述问题
(2) 语句简洁
1.1 传统方法
读文件:(模式:r,方法:read())
file = open('1.txt', 'r', encoding='UTF-8')
try:
file_content = file.read()
print(file_content)
finally:
file.close()
写文件:(模式:w,方法:write())
file = open('1.txt', 'w', encoding='UTF-8')
try:
file_bytes = file.write('1213\n哈哈哈')
print(file_bytes)
finally:
file.close()
1.2 with open() as 方法
# 格式
with open(文件名, 模式) as 文件对象:
文件对象.方法()
示例,读取 1.txt 文件的内容(效果同上传统方法)
with open('1.txt', 'r', encoding='UTF-8') as file:
print(file.read())
2 常用
2.1 模式
| 大类 | 模式 | 描述 | 说明 |
|---|---|---|---|
| 读 read | r | 只读(默认) | 文件必须存在,否则报错 |
| r+ | 读写 | ||
| rb | 只读(二进制) | ||
| 写 write | w | 只写 | 若文件已存在,则覆盖 若文件不存在,则创建 |
| w+ | 读写 | ||
| wb | 只写(二进制) | ||
| 追加 append | a | 追加写 | |
| a+ | 追加读写 |
2.2 方法
| 操作 | 方法 | 描述 | 注意 |
|---|---|---|---|
| 读 | read() | 每次读取整个文件 | 若文件过大,可限制读取的字节数,read(n) |
| readline() | 每次读取一行 | ||
| readlines() | 每次读取字符串列表 | 由单行汇总形成的多行(整个文件) | |
| readable() | 判断文件是否可读 | 返回 bool 类型 | |
| 写 | write() | 写入字符串 | 数据量大时,效率较低(先拼接成一个完整的字符串再写入文件) |
| writelines() | 写入字符串列表 | 数据量大时,效率较高(一次性写入多个字符串) | |
| writable() | 判断文件是否可写 | 返回 bool 类型 | |
| 指针 | tell() | 获取当前指针位置 | 文件读写前,指针在开头;读写完成后,指针在结尾 |
| seek() | 设置指针位置 | 0:文件头,1:当前,2:文件尾 |
2.3 属性
| 属性 | 描述 |
|---|---|
| name | 文件名 |
| encoding | 字符编码,如:UTF-8,GBK |
| mode | 模式 |
with open('1.txt', 'w', encoding='UTF-8') as f:
print(f.name)
print(f.encoding)
print(f.mode)
3 实例
3.1 同时读写多个文件
with open('1.txt', 'w', encoding='UTF-8') as file1, \
open('2.txt', 'w', encoding='UTF-8') as file2:
file1.write('我是第一个文件')
file2.write('我是第二个文件')
更多推荐



所有评论(0)