文件读写
.
- open方法
完整语法
open(file, mode='r', buffering=-1, encoding=None, errors=None,newline=None, closefd=True, opener=None)
参数说明
file —— 必须,文件路径(相对或者绝对路径)
mode —— 可选,文件打开模式
buffering —— 设置缓冲
encoding —— 一般使用utf-8
errors —— 报错级别
newline —— 区分换行符
closefd —— 传入的file参数类型
常用语法
f = open('/Users/.../test.txt', 'r')
标识符’r’表示读,打开成功后,用read()
方法可以一次读取文件的全部内容
- 读文件
content = f.read()
print(content)
最后一步是调用close()
方法关闭文件,文件实用文笔后必须关闭。因为文件对象会占用操作系统的资源,操作系统同一时间能打开的文件数量是有限的
f.close()
为了避免操作繁琐,可以实用with
语句自动调用close()
方法
with open('/User/.../test.txt', 'r') as f:
print(f.read())
这样就不必调用close()
方法
- read()语法
调用read()会一次性读取文件的全部内容,文件太大,会爆内存的。可以实用read(size)
方法,每次最多读取size个字节的内容。
readline()
每次读取一行内容
readlines()
一次读取所有内容并按行返回list
文件较小read()一次性读取教方便;不确定文件大小,可以反复调用read(size);如果是配置文件,调用readlines()教方便。
for line in f.readlines():
print(line.strip()) # 去掉末尾的'\n'
要读取二进制文件(图片、视频等等),用’rb’模式打开即可
- 写文件
写与读的步骤是一样的,区别是调用opne()时,标识符改为’w’
f = open('/User/.../test.txt', 'w')
f.write('Hello, world')
f.close()
同样也可以使用with语句,防止内容丢失
with open('/User/.../text.txt', 'w') as f:
f.write('Hello, world')
使用’w’模式写入文件,如果文件存在会将里面内容覆盖。如果想在末尾追加,可以使用标识符’a’模式写入