文件的打开模式
'r' 只读模式,默认值,如果文件不存在,返回FileNotFoundError
'w' 覆盖写模式,文件不存在则创建,存在则完全覆盖
'x' 创建写模式,文件不存在则创建,存在则返回FileExistsError
'a' 追加写模式,文件不存在则创建,存在则在文件最后追加内容
'b' 二进制文件模式
't' 文本文件模式,默认值
'+' 与r/w/x/a一同使用,在原功能基础上增加同时读写功能
f = open("f.txt")
文本形式、只读模式、默认值
f = open("f.txt", "rt")
文本形式、只读模式、同默认值
f = open("f.txt", "w")
文本形式、覆盖写模式
如果没有文件将创建文件,如果有,会覆盖掉原来的文件。
f = open("f.txt", "a+")
文本形式、追加写模式+ 读文件
如果没有加号,不能读文件
f = open("f.txt", "x")
文本形式、创建写模式
如果文件不存在创建文件,如果存在报出异常
f = open("f.txt", "b")
二进制形式、只读模式
f = open("f.txt", "wb")
二进制形式、覆盖写模式
文件内容的读取(3种方法)
f.read(size=-1) 读入全部内容,如果给出参数,读入前size长度
f.readline(size=-1) 读入一行内容,如果给出参数,读入该行前size长度
f.readlines(hint=-1) 读入文件所有行,以每行为元素形成列表,如果给出参数,读入前hint行
文件的遍历全文本操作
方法一:一次读入,统一处理
f = open("test.txt", "r")
txt = f.read()
print(type(txt)) #<class 'str'>
print(txt) #将读入的文本打印出来
f.close()
方法二:分批读入处理
f = open("test.txt", "r")
txt = f.read(2)
while txt != "":
txt = f.read(2)
print(txt) #每次打印出2个字符
f.close()
文件的逐行操作
方法一:一次将整个文件读入,然后分行处理,大文件可能比较占用内存
f = open("test.txt", "r")
print(type(f.readlines())) # <class 'list'> readlines()返回的是列表
f.seek(0)
for line in f.readlines():
print(line)
f.close()
方法二:一次读一行,处理一行,粗粒度,节省内存,更常用
f = open("test.txt", "r")
for line in f:
print(line)
f.close()
文件的写入(2种方法,1个辅助)
f.write(s) 向文件写入一个字符串或字节流
f.writelines(lines) 讲一个元素全为字符串的列表写入文件
f = open("test.txt", "w")
list = ["哈喽","嗨","你好"]
f.writelines(list)
f.close()
f.seek() 改变文件操作指针的位置0开头,1当前,2结尾
f.seek(0) #回到文件开头
网友评论