1.close 的意义
刷新缓冲区 flush
当文件关闭的时候自动刷新缓冲区
当整个程序运行结束的时候自动刷新缓冲区
当缓冲区写满了 会自动刷新缓冲区
手动刷新缓冲区
fp = open("ceshi6.txt",mode="a+",encoding="utf-8")
fp.write("add")
fp.flush()
while True:
pass
fp.close()
2.文件相关的函数
readable() 功能: 判断文件对象是否可读
writable() 功能: 判断文件对象是否可写
fp = open(“ceshi6.txt”,mode=“r+”,encoding=“utf-8”)
res1 = fp.readable()
res2 = fp.writable()
print(res1,res2)
readline() 功能: 读取一行文件内容
with open("ceshi6.txt" , mode="r+" ,encoding="utf-8") as fp:
res = fp.readline(20000)
如果字符个数 > 当前行总个数 ,按照当前行进行读取
如果字符个数 < 当前行总个数 ,按照实际个数读取
res = fp.readline()
res = fp.readline()
res = fp.readline()
res = fp.readline()
print(res)
改造 => 通过循环把文件当中所有内容读取出来
with open("ceshi6.txt" , mode="r+" ,encoding="utf-8") as fp:
# 先读取一行
res = fp.readline()
# 判断读取的字符串是不是空,不为空就执行,反之不执行;
while res:
print(res)
res = fp.readline()
readlines() 功能:将文件中的内容按照换行读取到列表当中
lst_new = []
with open("ceshi6.txt" , mode="r+" ,encoding="utf-8") as fp:
lst = fp.readlines()
for i in lst:
res = i.strip()
lst_new.append(res)
print(lst_new)
writelines() 功能:将内容是字符串的可迭代性数据写入文件中 参数:内容为字符串类型的可迭代数据
可迭代数据(容器类型数据 , range对象, 迭代器) 文件对象
文件对象也是可迭代性数据,在遍历时候,默认按照一行一行进行读取
for i in fp:
print(i)
lst = ["抬头思故乡\n","疑是地上霜\n","举头望明月\n","低头鞋两双\n"]
with open("ceshi7.txt",mode="w+" ,encoding="utf-8") as fp:
# 在列表中,对应的位置,插入想要的字符串
lst.insert(1,"黄俊真聪明\n")
fp.writelines(lst)
truncate() 功能: 把要截取的字符串提取出来,然后清空内容将提取的字符串重新写入文件中 (字节)
截取 -> 清空 -> 写入
with open("ceshi7.txt",mode="r+",encoding="utf-8") as fp:
fp.truncate(6)
总结:
read(字符)
readline(字符)
seek(字节)
truncate(字节)