try: f = open('/path/to/file', 'r') print(f.read()) except IOError as e: print('except:', e) finally: if f: f.close()
使用with
语句会自动调用close()
方法:缓存
with open('/path/to/file', 'r') as f: print(f.read())
经常使用的读方法:网络
read()
一次性读取文件的所有内容;read(size)
每次读取size个字节的内容;readline()
每次读取一行内容;readlines()
一次读取全部内容并按行返回list
;readlines() 使用示例:测试
for line in f.readlines(): print(line.strip()) # 把末尾的'\n'删掉
含有read()
方法的对象,在Python中统称为file-like Object。编码
文件、字节流、网络流、自定义流等都是 file-like Object。操作系统
图片、视频等都属于二进制文件,须要用'rb'
模式打开:code
>>> f = open('/Users/michael/test.jpg', 'rb') >>> f.read() b'\xff\xd8\xff\xe1\x00\x18Exif\x00\x00...' # 十六进制表示的字节
>>> f = open('/Users/michael/gbk.txt', 'r', encoding='gbk', errors='ignore') >>> f.read() '测试'
写文件时,操做系统每每不会马上把数据写入磁盘,而是放到内存缓存起来,空闲的时候再慢慢写入。只有调用close()
方法时,操做系统才把没有写入的数据所有写入磁盘。因此建议使用 with 方式:视频
with open('/path/to/file', 'w') as f: f.write('Hello, world!')
w 模式为覆盖写入 a 模式为追加写入