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

Python实现多位置文件夹文件合并至单文件夹的问题求助

多源文件夹文件批量移动到目标文件夹的修复方案

你的代码存在两个错误导致运行失败:

  • os.listdir() 参数错误:这个函数仅支持传入单个文件夹路径,你同时传了两个源路径,触发TypeError。
  • shutil.move() 用法错误:该函数只需要两个参数——待移动文件的完整路径、目标位置的完整路径,你传入三个参数不符合要求。

修正后的代码

import os
import shutil

# 将所有源文件夹存入列表,实现批量遍历
sources = [
    "C:\\Users\\user\\OneDrive\\Desktop\\1\\",
    "C:\\Users\\user\\OneDrive\\Desktop\\2\\"
]
destination = "C:\\Users\\user\\OneDrive\\Desktop\\Destination\\"

# 确保目标文件夹存在,不存在则自动创建
os.makedirs(destination, exist_ok=True)

# 遍历每个源文件夹
for source in sources:
    # 获取当前源文件夹内的所有项
    for filename in os.listdir(source):
        # 拼接完整的源文件路径(比直接用+更安全)
        source_file_path = os.path.join(source, filename)
        # 拼接完整的目标文件路径
        dest_file_path = os.path.join(destination, filename)
        # 仅移动文件(如需移动文件夹可删除此判断)
        if os.path.isfile(source_file_path):
            shutil.move(source_file_path, dest_file_path)

print("文件已转移完成")

关键优化点

  • 使用os.path.join()拼接路径:避免手动拼接时因路径末尾有无斜杠导致的路径错误,兼容性更强。
  • 自动创建目标文件夹:通过os.makedirs(..., exist_ok=True)确保目标目录存在,防止移动时因目录不存在报错。
  • 可选的文件/文件夹过滤:通过os.path.isfile()只移动文件,若需要同时移动子文件夹,删除该判断即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 17:05:20