Python 文件操作

PythonPythonBeginner
立即练习

💡 本教程由 AI 辅助翻译自英文原版。如需查看原文,您可以 切换至英文原版

简介

欢迎来到乌托邦式的未来,人类已崛起,在星际间建造起了庞大的都市。你身处天城(Celestia),这是一座围绕遥远系外行星运行的前沿太空城市。作为天城的首席建筑师之一,你使用先进的模拟软件来设计兼具功能性与宏伟感的居住空间。

你在本次实验中的目标是利用 Python 的强大功能开发一套工具,以帮助管理大量的建筑规划和文档。你旨在自动化维护太空城市蓝图时所涉及的繁琐文件操作,为城市的发展和效率做出贡献。


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FileHandlingGroup(["File Handling"]) python/FileHandlingGroup -.-> python/file_operations("File Operations") subgraph Lab Skills python/file_operations -.-> lab-271551{{"Python 文件操作"}} end

创建初始蓝图文件

在这一步中,你将通过为你的规划创建一个初始文件来搭建新项目的基础。这将是我们构建更复杂文件操作的基石。

让我们使用 Python 向这个文件中写入一些基本信息。在 ~/project 中打开一个名为 write_plan.py 的文件:

## write_plan.py
plan_content = """天城氧气花园蓝图
建筑师:[你的名字]
最后更新时间:[今日日期]
这个太空花园旨在为天城居民提供充足的氧气供应和休闲空间。
"""

with open('/home/labex/project/oxygen_gardens.txt', 'w') as file:
    file.write(plan_content)

从你当前名为 ~/project 的工作目录中执行这个脚本:

python write_plan.py

使用 cat 命令检查文件内容:

cat /home/labex/project/oxygen_gardens.txt

你应该会在终端中看到你写入文件的内容:

天城氧气花园蓝图
建筑师:[你的名字]
最后更新时间:[今日日期]
这个太空花园旨在为天城居民提供充足的氧气供应和休闲空间。

列出所有蓝图文件并读取内容

在这一步中,我们将开发一个脚本,用于列出目录中的所有蓝图文件,然后读取特定文件的内容。

假设到目前为止你的目录中有多个蓝图文件。你将打开一个 list_blueprints.py 脚本,该脚本列出 /home/labex/project/ 目录中所有的文本文件(.txt)。

## list_blueprints.py
import os

## 定义蓝图目录路径
blueprints_dir = '/home/labex/project/'

## 列出目录中的所有文件
files = os.listdir(blueprints_dir)

## 过滤掉非.txt 文件并打印剩余文件
print("蓝图文件:")
for file in files:
    if file.endswith('.txt'):
        print(file)

## 假设 'oxygen_gardens.txt' 是我们要读取的文件
file_to_read = 'oxygen_gardens.txt'
with open(os.path.join(blueprints_dir, file_to_read), 'r') as file:
    print(f"\n{file_to_read} 的内容:")
    print(file.read())

在项目目录的终端中运行该脚本:

python list_blueprints.py

输出应列出所有蓝图文件,然后是 oxygen_gardens.txt 的内容:

蓝图文件:
oxygen_gardens.txt

oxygen_gardens.txt 的内容:
天城氧气花园蓝图
建筑师:[你的名字]
最后更新时间:[今日日期]
这个太空花园旨在为天城居民提供充足的氧气供应和休闲空间。

总结

在本次实验中,你学习了如何在太空时代背景下使用 Python 来导航、创建和操作文件及目录。通过自动化这些文件操作,你朝着为天城的建筑工作构建一个高效的文件管理系统迈出了重要的一步。使用 Python 处理文件操作的能力是一项宝贵的技能,可应用于各种实际场景,而你在本次实验中的探索增强了这一能力。