# flush
"""
1、文件写操作时,数据并非直接写到磁盘,而是先写到缓存(内存),然后在写到磁盘。
2、flush就是将缓存中的数据写入到磁盘
"""
import time
# 示例1、对比使用flush和不使用flush的效果
# 不使用flush时,会一起打印
for i in range(30):
print('*', end='')
time.sleep(0.1)
# 使用flush时,会逐个打印
for j in range(30):
print('*', end='', flush=True)
time.sleep(0.1)
# truncate
"""
1、清空文件内容
2、不指定参数默认清空所有,指定参数为保留多少个字符
"""
file = open('演示文件', 'a', encoding='utf8')
# 保留前3个字符
file.truncate(3)
# 清空所有
file.truncate()
file.close()
# r+模式
"""
1、读写模式
2、读取时从头开始
3、写入时,追加在结尾
"""
file = open('演示文件', 'r+', encoding='utf8')
# 打印第一行
print(file.readline())
# 在结尾添加
file.write('abc')
file.close()
# w+模式
"""
1、写读模式
2、创建对象时,先清空数据。
3、读取时,文件指针会在上一次写入的内容之后,需要在读取之前先设置文件指针位置
"""
file = open('演示文件', 'w+', encoding='utf8')
# 在结尾添加
file.write('abc')
# 打印文件指针
print(file.tell())
# 设置文件指针位置
file.seek(0)
# 打印一行
print(file.readline())
file.close()
# a+模式
"""
1、追加读模式
2、读取时,文件指针在结尾,需要在读取之前先设置文件指针位置
3、写入时,追加在结尾
"""
file = open('演示文件', 'r+', encoding='utf8')
# 打印文件指针
print(file.tell())
# 设置文件指针
file.seek(0)
# 打印一行
print(file.readline())
# 在结尾添加
file.write('abc')
file.close()
正文完