Python 读写文件

读文件

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 模式为追加写入
相关文章
相关标签/搜索