Python自学 提取文件夹中所有的文件移动到另一个文件夹中

本文介绍了一个简单的Python脚本,用于将指定文件夹内的所有文件批量移动到另一个位置。脚本通过递归方式处理文件夹结构,保持源文件夹内的相对路径不变。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多说直接上代码 

BasicTraversalFolder.py
import os

def BasicTransfer(OldPath, NewPath):
    for root, dirs, names in os.walk(OldPath):
        # root 当前访问的路径
        # dirs 当前文件夹下的子目录名
        # name 当前文件夹下的子文件名
        for name in names:
            # 遍历所有文件名称
            RecourseName = os.path.join(root, name)
            # 包含相对路径的旧文件路径
            # print(RecourseName)
            DestinationName = NewPath + '\\' + name
            # 包含相对路径的文件路径
            # print(DestinationName)
            os.rename(RecourseName, DestinationName)

a = input('请输入文件路径')
b = input('请输入移动目标路径')
BasicTransfer(a, b)

### Python 批量复制多文件夹中的文件到指定文件夹 为了实现从多个文件夹提取文件并将其复制到一个目标文件夹的功能,可以使用 `shutil` 和 `os` 模块。以下是完整的解决方案: #### 解决方案概述 可以通过遍历源目录及其子目录找到所有符合条件的文件,并将这些文件逐一复制到目标文件夹中。此过程涉及以下几个核心操作: 1. 使用 `os.walk()` 遍历源目录树。 2. 利用条件筛选特定类型的文件(如果需要)。 3. 调用 `shutil.copy()` 将文件复制到目标路径。 #### 示例代码 以下是一个通用的示例代码,展示如何批量复制多个文件夹中的文件到指定的目标文件夹: ```python import os import shutil def copy_files_from_multiple_folders(source_dir, target_dir, file_extension=None): """ 从多个文件夹中复制文件到指定的目标文件夹 参数: source_dir (str): 源目录路径,包含要复制的文件。 target_dir (str): 目标目录路径,用于存储复制后的文件。 file_extension (str, optional): 文件扩展名过滤器,默认为 None 表示不过滤。 """ if not os.path.exists(target_dir): os.makedirs(target_dir) for root, dirs, files in os.walk(source_dir): for file in files: if file_extension is None or file.endswith(file_extension): src_file_path = os.path.join(root, file) dst_file_path = os.path.join(target_dir, file) # 如果目标文件已存在,则跳过或覆盖 try: shutil.copy(src_file_path, dst_file_path) print(f"Copied {src_file_path} to {dst_file_path}") except Exception as e: print(f"Error copying {src_file_path}: {e}") # 示例调用 source_directory = r"F:\编程题题库\python编程题数据集和代码468" target_directory = r"F:\编程题题库\汇总文件夹" copy_files_from_multiple_folders(source_directory, target_directory, ".py") ``` #### 关键点解析 1. **`os.walk()` 的作用**: 它会递归地遍历给定目录下的所有子目录和文件[^2]。每次迭代返回当前路径 (`root`)、该路径下的子目录列表 (`dirs`) 和文件列表 (`files`)。 2. **文件筛选逻辑**: 可以通过设置 `file_extension` 参数来限定只处理某种类型的文件(如 `.py`, `.txt`)。如果没有提供扩展名,则默认处理所有文件[^3]。 3. **异常处理**: 复制过程中可能会遇到权限不足或其他错误情况,因此加入了简单的异常捕获机制以便调试[^1]。 4. **目标文件夹不存在的情况**: 若目标文件夹尚不存在,则先通过 `os.makedirs()` 创建它。 --- #### 注意事项 - 当前代码假设不会发生同名文件冲突;如果有需求解决这种情况,可以在复制之前检查目标路径是否存在相同名称的文件,并采取改名策略。 - 对于非常大的文件集合或者深层嵌套结构,可能需要注意性能优化以及内存占用问题。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值