读文件
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 模式为追加写入
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。