读文件
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'
模式关上:
>>> 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 模式为追加写入