程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python进阶-Day8:文件操作与数据处理

hfteth 2025-05-02 18:33:27 技术文章 4 ℃

文件操作与数据处理 的进阶学习任务,旨在帮助你深入掌握文件操作和数据处理的核心技能。以下是详细的学习计划和任务安排:


学习目标

  1. 熟练使用 os、shutil 和 pathlib 模块进行文件和目录操作。
  2. 掌握 CSV 和 JSON 文件的读写操作,理解数据处理的基本流程。
  3. 通过实践项目(批量重命名文件脚本),综合运用所学知识。

学习任务分解

1. 学习 os、shutil 和 pathlib 模块

  • 学习内容os 模块:文件和目录的基本操作。 os.listdir():列出目录内容。 os.path.join():路径拼接。 os.rename():重命名文件。 os.remove():删除文件。 os.makedirs():创建目录。 shutil 模块:高级文件操作。 shutil.copy():复制文件。 shutil.move():移动文件。 shutil.rmtree():删除目录树。 pathlib 模块:现代化的路径操作。 Path.cwd():获取当前工作目录。 Path.iterdir():迭代目录内容。 Path.rename():重命名文件或目录。 Path.glob():按模式匹配文件。
  • 任务: 阅读官方文档或相关教程,理解三者区别。 编写代码测试:创建一个目录,复制一个文件到该目录,然后删除原文件。

2. 掌握 CSV 和 JSON 文件的读写

  • 学习内容csv 模块: 使用 csv.reader 和 csv.writer 读取和写入 CSV 文件。 使用 csv.DictReader 和 csv.DictWriter 处理带表头的数据。 json 模块: json.load() 和 json.dump():从文件读取/写入 JSON 数据。 json.loads() 和 json.dumps():处理 JSON 字符串。
  • 任务: 创建一个简单的 CSV 文件(例如:name, age, city),写入 5 条数据,然后读取并打印。 将上述 CSV 数据转换为 JSON 格式并保存到文件,再读取验证。

3. 练习:编写批量重命名脚本

  • 任务要求: 编写一个 Python 脚本,批量重命名指定文件夹中的文件。 重命名规则示例:将文件名改为 prefix_序号.扩展名(如 photo_001.jpg)。 支持用户输入文件夹路径和前缀。 添加错误处理(如文件不存在、权限不足等)。
  • 实现步骤: 使用 pathlib.Path 获取文件夹中的所有文件。 遍历文件列表,生成新文件名。 使用 Path.rename() 执行重命名操作。 添加异常处理和用户交互。

学习计划

  • 上午(2-3 小时): 学习 os、shutil 和 pathlib,完成模块测试代码。
  • 下午(2-3 小时): 学习 CSV 和 JSON 文件操作,完成读写练习。
  • 晚上(2-3 小时): 实现批量重命名脚本,测试并优化。

示例代码:批量重命名脚本

以下是一个基础实现,供你参考并扩展:

python

from pathlib import Path

def batch_rename_files(folder_path, prefix="file"):
    try:
        # 转换为 Path 对象
        folder = Path(folder_path)
        if not folder.exists() or not folder.is_dir():
            raise ValueError("无效的文件夹路径")

        # 获取所有文件
        files = [f for f in folder.iterdir() if f.is_file()]
        if not files:
            print("文件夹中没有文件")
            return

        # 批量重命名
        for i, file in enumerate(files, start=1):
            new_name = f"{prefix}_{i:03d}{file.suffix}"  # 如 file_001.jpg
            new_path = folder / new_name
            file.rename(new_path)
            print(f"重命名: {file.name} -> {new_name}")

    except Exception as e:
        print(f"发生错误: {e}")

if __name__ == "__main__":
    folder_path = input("请输入文件夹路径: ")
    prefix = input("请输入文件名前缀(默认 'file'): ") or "file"
    batch_rename_files(folder_path, prefix)

进阶挑战(可选)

  1. 修改脚本,支持按文件修改时间排序后重命名。
  2. 添加正则表达式支持,允许用户指定重命名规则(如提取文件名中的数字)。
  3. 将重命名操作记录到 CSV 文件中,包含旧名和新名。



学习资源建议

  • Python 官方文档:os、shutil、pathlib、csv、json。
  • 实践环境:本地创建一个测试文件夹,放入一些文件(如图片、文本)。

通过今天的任务,你将掌握 Python 文件操作和数据处理的核心技能,并具备编写实用脚本的能力。完成后,尝试将脚本应用到实际场景中,进一步巩固所学!有什么问题,随时问我。

最近发表
标签列表