You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux环境下如何用Python读取文本中文件夹并复制到目标目录

Linux下用Python批量复制文件夹的解决方案

你遇到的问题是shutil.copyfile仅支持单个文件复制,要复制包含全部内容的文件夹,得用shutil.copytree()方法,以下是完整实现方案:

步骤说明

  • 先创建目标目录duplicate-folder(如果不存在)
  • 读取存储文件夹名的文本文件,过滤空行
  • 逐个调用shutil.copytree()复制文件夹到目标目录

完整代码示例

import os
import shutil

# 定义目标目录和文件夹列表文件路径
target_dir = "duplicate-folder"
folders_list_path = "folders.txt"

# 创建目标目录,exist_ok=True避免目录已存在时报错
os.makedirs(target_dir, exist_ok=True)

# 读取文件夹列表,去除空行和首尾空白字符
with open(folders_list_path, "r") as file:
    folder_names = [line.strip() for line in file if line.strip()]

# 批量复制文件夹
for folder in folder_names:
    # 拼接目标路径:duplicate-folder/原文件夹名
    dest_folder = os.path.join(target_dir, os.path.basename(folder))
    try:
        # Python 3.8+支持dirs_exist_ok=True,可覆盖已存在的目标文件夹
        shutil.copytree(folder, dest_folder, dirs_exist_ok=True)
        print(f"已复制: {folder} → {dest_folder}")
    except Exception as e:
        print(f"复制失败 {folder}: {str(e)}")

注意事项

  • 如果文本文件中的文件夹是相对路径,确保脚本运行的工作目录正确,或者直接使用绝对路径
  • dirs_exist_ok=True参数仅在Python 3.8及以上版本可用,若用低版本,可先删除已存在的目标文件夹再复制(需谨慎操作)
  • shutil.copytree()会完整复制文件夹的所有内容,包括子目录、文件权限和元数据

内容的提问来源于stack exchange,提问作者Megan Darcy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.10 15:45:29