'''
模式:常用的为r、w、a
r: 只读 ;光标在开头 r+:读写 光标在开头 rb:二进制读取 rb+
w: 覆盖写入 ;光标在开头 W+:覆盖读写 光标在开头 WB:二进制覆盖 WB+
a: 追加写入 ;光标在末尾 a+: 读写 光标在末尾 ab:二进制追加 ab+
'''
# read() 以只读的方式打开文件,编码为utf-8,光标默认在起始位置
# close() 关闭文件
f = open("./demo.txt", "r", encoding="utf-8")
# read()读取文件所有内容
content = f.read()
print(content)
# ./ 为相对路径
f = open("./demo.txt", "r", encoding="utf-8")
# readlines 读取文件所有内容,并以列表形式展示,每一行内容为一个元素
# readline 读取第一行文件内容
content = f.readlines()
print(content)
# seek() 作用:用来移动文件指针
# 语法:文件对象.seek(偏移量,起始位置)
# 偏移量:英文字母1个偏移量,中文汉字3个偏移量,
# \n 2个偏移量,英文标点符号1个偏移量,中文标点符号3个偏移量
# 起始位置: 0:文件开头 1:当前位置 2:文件末尾
f = open("./demo.txt", "r", encoding="utf-8")
f.seek(9, 0)
content = f.read()
print(content)
# write() 覆盖写入
f = open("./demo2.txt", "w", encoding="utf-8")
f.write("张员外")
f.close()
f = open("./dem3.txt", "a", encoding="utf-8")
f.write("明天下午擦玻璃")
f.close()
# 上下文管理器 with....as.... 操作完成后,自动关闭当前文件
with open("./dem3.txt", "a", encoding="utf-8") as f:
f.write(",周六安排全屋保洁")
# r+ read()从开头开始按写入内容覆盖
# r+ readlines()从末尾追加
with open("./demo.txt", "r+", encoding="utf-8") as f:
f.write("小学生")
content = f.read()
print(content)
# w+ 完全覆盖所有内容,并新增
with open("./demo.txt", "w+", encoding="utf-8") as f:
f.write("小学生必背古诗词")
content = f.read()
print(content)
# a+ 从末尾新增
with open("./demo.txt", "a+", encoding="utf-8") as f:
f.write("小学生必背古诗词")
content = f.read()
print(content)
# 绝对路径
with open("J:\\python_basics\\课件笔记\\demo.txt", "a+", encoding="utf-8") as f:
f.write("小学生必背古诗词")
content = f.read()
print(content)
# 文件备份的操作
# 输入旧文件名称
old_name = input("请输入文件名:")
# 从最右侧开始提取第一个"."符号索引值
index = old_name.rindex(".")
# 组织新文件名称,xxx + 备份 + 后缀
new_name = old_name[:index] + "备份" + old_name[index:]
# 只读模式打开old_name文件
old_f = open(f"{old_name}", "r", encoding="utf-8")
# 追加写入模式打开new_name文件
new_f = open(f"{new_name}", "a", encoding="utf-8")
while True:
# 读取old_name所有文件,赋值给变量
content = old_f.read()
# 所有文件读取完之后,停止读取
if len(content) == 0:
break
# 把变量的内容写入打开的new_name
new_f.write(content)
# 关闭所有文件
old_f.close()
new_f.close()
# 文件和文件夹的操作
# 在Python中对文件和文件夹的操作需要导入os模块
# 导入os模块
import os
# 文件重命名
os.rename("目标文件名", "新文件名")
# 删除文件
os.remove("目标文件名")
# 创建文件夹
os.mkdir("文件夹名字")
# 删除文件夹
os.rmdir("文件夹名字")
# 获取当前目录
os.getcwd()
# 获取当前文件所在目录
print(os.getcwd())
# 改变默认目录
os.chdir()
# 获取目录列表
os.listdir()
练习:
1.写一首诗,放到一个txt文件里
2.删除第二句诗