feat(python进阶): 新增文件与目录操作课程

This commit is contained in:
2026-08-03 22:01:22 +08:00
parent 691405f380
commit f7c820b0f4
5 changed files with 538 additions and 13 deletions

View File

@@ -0,0 +1,71 @@
# 第 2-2 课完整示例:文件与目录操作
#
# 本程序只会在当前课程目录的 runtime_data 文件夹中创建和修改文件。
# runtime_data 已被本课的 .gitignore 忽略,不会污染 Git 变更记录。
from pathlib import Path
# __file__ 表示当前 Python 文件的位置。
# parent 表示当前文件所在的目录。
LESSON_DIR = Path(__file__).parent
DATA_DIR = LESSON_DIR / "runtime_data"
NOTES_FILE = DATA_DIR / "learning_notes.txt"
def create_data_directory():
"""创建保存示例数据的目录。"""
# parents=True 表示需要时一并创建上级目录。
# exist_ok=True 表示目录已经存在时不报错。
DATA_DIR.mkdir(parents=True, exist_ok=True)
print(f"数据目录已准备:{DATA_DIR.name}")
def write_initial_notes():
"""写入初始学习记录。"""
notes = "第一条:学习使用 Path 表示路径。\n"
# write_text() 会覆盖文件原有内容。
# encoding="utf-8" 可以正确保存中文。
NOTES_FILE.write_text(notes, encoding="utf-8")
print(f"初始内容已写入:{NOTES_FILE.name}")
def append_note():
"""在文件末尾追加一条学习记录。"""
# open() 打开文件后,需要在操作结束时关闭文件。
# with 语句会帮助我们自动关闭文件。
# 模式 "a" 表示追加,不会清空原有内容。
with NOTES_FILE.open("a", encoding="utf-8") as file:
file.write("第二条:学习读取和追加文件。\n")
print("新的学习记录已追加。")
def read_notes():
"""读取并输出全部学习记录。"""
content = NOTES_FILE.read_text(encoding="utf-8")
print("学习记录内容:")
print(content, end="")
def show_directory_contents():
"""遍历并显示数据目录中的内容。"""
print("数据目录中的文件:")
for path in DATA_DIR.iterdir():
if path.is_file():
print(f"- {path.name}")
def main():
"""按照安全顺序运行文件与目录示例。"""
create_data_directory()
write_initial_notes()
append_note()
read_notes()
show_directory_contents()
if __name__ == "__main__":
main()