Python的open函数详解
open(file, mode='rt', encoding=None) -> BaseIO
mode参数详解:
字符 含意
‘r’ 读取(默认)
‘w’ 写入,并先截断文件
‘a’ 打开文件用于写入,如果文件存在则在末尾追加
‘b’ 二进制模式
‘t’ 文本模式(默认)
‘+’ 打开用于更新(读取与写入)
细节问题:
(1)文件操作过程全程存在文件指针,不管读取还是写入都存在指针的移动
(2)文件指针初始值指向0的位置,其移动单位为字节(bytes)
(3)open函数返回的是文本流对象,假设为f
f.read(size=-1)#默认读取整个文本(size表示读取字节数),并将指针移动到最后文件内容的下一个字节
f.write(s)#写入字符串s,并将指针移动到s最后内容的下一个字节
f.readline()# 读取一行(包括行尾的换行符),并将指针移动到下一行开始的位置
f.readlines()#每一行作为列表的一个元素,返回列表#如果想要迭代每一行,可以利用for line in f: 来迭代,从而避免占用过多内存
(4)'r’和’w’的方式读取,指针初始为0,且’w’的方式会删掉该文件所有内容;
'a’的方式读取指针指向源文件内容的下一个字节;
'a’和’w’可以自动创建一个不存在文件文件,‘r’不行
(5)’+'用于就地修改文件
(6)常用组合
‘r+’ #可读取、可写入文件; 文件指针为0
‘w+’ #可读取、可写入文件;文件指针为0,并删除原文件所有内容
‘a+’ #可读取、可写入文件;文件指针在文章末尾
'rb'
'rb+'
'wb'
'wb+'
'ab'
...
(7)操作文件指针的函数
f.tell()#返回指针指向的位置
f.seek(offset, whence=SEEK_SET)
SEEK_SET 或 0-- 流的开头(默认值)
SEEK_CUR or1-- 当前流位置;
SEEK_END or2-- 流的末尾;
版权归原作者 Renatoly 所有, 如有侵权,请联系我们删除。