#文件操作
# 第一步:打开文件
# f = open(文件路径"./data.txt",打开方式可默读取模式"r", 编码方式encodeing="utf-8")
# r:只读 w:只写
# txt纯文字,不出错 word有字体颜色、字号、字体等格式,容易读出问题
f=open("./data.txt","r", encodeing="utf-8") #open()可返回文件对象
print(f.read()) #read()可返回字符串
#第一次read()结束,读指针位于末尾,若再次read,则读取内容为空
print(f.read(10)) #读取并打印十个字节
print(f.readline()) #读取并打印一行
#一行一行地读完文件(未知行数,用while)
line=f.readline() #循环条件初始化:读取第一行
while line!="": #循环条件:当前行不为空
print(line)
line=f.readline() #改变循环变量:继续读取下一行
# readlines读取全部文件内容,并把每行内容作为列表元素返回
lines=f.readlines()
for line in lines:
print(line)
#1. while+readline(不为空时进行)
#2. readlines+for(先读取进列表)
f.close() #关闭文件,释放资源
"""
f=open("./data.txt")
print(f.read())
f.close()
"""
#更加简洁,不易忘记关闭文件的方法
"""
with open("./data.txt") as f: #with open() as f:
print(f.read())
"""
f=open("data.txt","r",encoding="utf-8")
content=f.read()
print(content)
f.close()
with open("data.txt","r",encoding="utf-8") as f:
content=f.read()
print(content)
with open("data.txt","r",encoding="utf-8") as f:
print(f.readline()) #readline本身就会读取到\n,加上print也会分行,所以就会换行两次
print(f.readline())
with open("data.txt", "r", encoding="utf-8") as f:
lines=f.readlines() #先读取存进列表
for line in lines: #再用for遍历打印输出
print(line)
写文件:
with open("data1.txt","w",encoding="utf-8") as f:
#写文件下,如果文件不存在,则会自动创建
#若原本的文件存在,则会把原本的文件清空
f.write("Hello\n")
#write不会默认加换行,需要自己手动加换行符
# w:清空重写
# a:附加内容
with open("data1.txt","a",encoding="utf-8") as f:
f.write("How are you?\n")
f.write("my dear")
同时读写文件:
#r+:同时读写文件
with open("data.txt","r+",encoding="utf-8") as f: #r+
print(f.read())
f.write("hello!") #此时write以追加的形式在文件后面添加新的内容