打开文件:open(file,mode='r',buffering=-1,encodin=None)
绝对路径:从根目录开始:D:/class/python/py/class7.py
相对路径:"./class6.py"
"../ " 表示上级目录:"../class5.py"
打开格式:
文本文件打开 t 解码后的数据
二进制模式打开 b 编码后的数据
操作格式:
读取文件 r 特性:文件指针在开头
写入文件 w 特性:删除重新内容重新写入
追加数据 a 特性:文件指针放在结尾
混合模式:
+ :又读又写,会保留原先的操作格式的特性
f = open("./cl4.txt","w")
f.write("ABC")
f.close()
f= open("./cl4.txt", "r")
print(f.read())
f.close()
f = open("./cl4.txt", "a")
f.write("D")
f.close()
f = open("./cl4.txt", "r+")
f.write("D")
f.close()
读取:
file.read(字符个数/字节个数) 读取文件中的数据,
如果是文本模式则是字符个数,如果是二进制则是字节个数
file.readline() 读取一行
file.readlines() 读取多行以列表形式返回(带换行符)
file.read().splitlines() 读取多行以列表形式返回(不带换行符)
f = open("cl4.txt", "r+", encoding="utf-8")
print(f.read(2)) # 读取前俩个字符
f.write("第一行\n第二行")
print(f.readline())
print(f.readlines())
for i in f.readlines():
print(i.strip("\n")) # 文本内容按行输出
print(f.read().splitlines())
for i in f:
print(i)
f.close()
写入:
file.write(字符串)
file.writelines(序列) 把序列中的字符串写入文件
f = open("cl4.txt", "r+", encoding="utf-8")
f.write("五十四") # 从头开始写
f.writelines(["A\n", "B\n", "C"])
f.close()
缓冲区 buffering:
-1:默认缓冲区大小8192个字节
0: 二进制模式关闭字符串 文本模式不支持
1: 文本模式行缓存(遇到换行符才写入flush)
>1:设置缓冲区大小,缓冲区满的时候flush缓冲区写入外存
import time
f = open("cl4.txt", "w", buffering=1)
f.write("ABC\n")
f.write("DEF")
print("程序暂停三秒")
time.sleep(3)
f.close()
f = open("cl4.txt", "wb", buffering=1)
for i in range(51):
f.write(b"A\n")
print("程序暂停5秒")
time.sleep(5)
f.close()