共计 824 个字符,预计需要花费 3 分钟才能阅读完成。
读文件
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 模式为追加写入
正文完