影刀RPA新手教程:文件批量处理操作指南——遍历文件夹、改名、移动与复制

做自动化,迟早要和文件打交道。

采集的数据保存在一堆CSV里需要合并、日志文件该删了、命名不规范要统一改。

在这里插入图片描述

影刀的文件处理指令不复杂,但操作组合起来会了能省大量时间。


一、遍历文件夹里的所有文件

右侧指令面板搜索"遍历文件夹",拖到画布。配置两个参数:

在这里插入图片描述

  • 文件夹路径:要扫描的目录
  • 文件类型:*.* 表示所有文件,*.xlsx 表示只要Excel,*.csv 只要CSV
遍历文件夹("D:\\数据\\日报\\", "*.xlsx") -> 文件路径列表

遍历列表(文件路径列表, 文件路径):
    文件名称 = 获取文件名(文件路径)
    输出日志(f"处理中: {文件名称}")
    
    # 你的业务逻辑
    读取Excel(文件路径) -> 表格
    # ...

也可包含子文件夹:

店群矩阵自动化突破运营极限!


在这里插入图片描述

# 如果有"递归"选项,勾选后会进入子文件夹
遍历文件夹("D:\\数据\\", "*.*", 递归=True)

二、文件改名

文件路径 = "D:\\数据\\20260609_日报.xlsx"
新路径 = "D:\\数据\\日报_2026年6月9日.xlsx"

重命名文件(文件路径, 新路径)

批量改名:

在这里插入图片描述

遍历文件夹("D:\\照片\\", "*.jpg") -> 文件列表

遍历列表(文件列表, 文件路径, 索引):
    新文件名 = f"照片_{索引 + 1:03d}.jpg"
    新路径 = f"D:\\照片\\已整理\\{新文件名}"
    复制文件(文件路径, 新路径)  # 复制到整理目录,不改原文件

索引 + 1:03d 的意思是:从1开始编号,不足3位的补零(001, 002, …, 099, 100)。


三、文件移动

在这里插入图片描述

# 把昨天的日报移到归档文件夹
源文件 = f"D:\\数据\\日报\\日报_{昨天日期}.xlsx"
目标 = f"D:\\数据\\归档\\2026年\\6月\\日报_{昨天日期}.xlsx"

# 先确保目标目录存在
创建文件夹("D:\\数据\\归档\\2026年\\6月")

移动文件(源文件, 目标)

按文件类型分类移动:

遍历文件夹("D:\\下载\\", "*.*") -> 文件列表

遍历列表(文件列表, 文件路径):
    扩展名 = 获取文件扩展名(文件路径)  # ".xlsx"
    
    如果 扩展名 == ".xlsx":
        移动文件(文件路径, f"D:\\整理\\Excel\\{获取文件名(文件路径)}")
    否则如果 扩展名 == ".csv":
        移动文件(文件路径, f"D:\\整理\\CSV\\{获取文件名(文件路径)}")
    否则如果 扩展名 属于 [".jpg", ".png", ".gif"]:
        移动文件(文件路径, f"D:\\整理\\图片\\{获取文件名(文件路径)}")

在这里插入图片描述

四、文件删除与清理

删除单个文件

删除文件("D:\\temp\\无用文件.txt")

批量清理旧文件

在这里插入图片描述

# 删除7天前的日志
遍历文件夹("D:\\日志\\", "*.log") -> 文件列表

遍历列表(文件列表, 文件路径):
    修改时间 = 获取文件修改时间(文件路径)
    当前时间 = datetime.now()
    
    如果 (当前时间 - 修改时间).days > 7:
        删除文件(文件路径)
        输出日志(f"已删除过期文件: {获取文件名(文件路径)}")

⚠️ 注意:删除操作不可逆。建议测试时先改成"移动到回收站"(如果有这个指令的话),或者先输出日志确认要删的文件列表,再执行删除。

temu店群自动化报活动案例


在这里插入图片描述

五、检查文件是否存在

如果 文件存在("D:\\数据\\数据源.csv"):
    读取CSV("D:\\数据\\数据源.csv")
else:
    输出日志("数据源文件不存在,跳过")

六、综合实战:每日数据整理脚本

在这里插入图片描述

# 子流程:F_每日数据整理

来源目录 = "D:\\下载\\"
Excel目标 = "D:\\数据\\Excel\\"
CSV目标 = "D:\\数据\\CSV\\"

# 1. 确保目标目录存在
创建文件夹(Excel目标)
创建文件夹(CSV目标)

# 2. 遍历下载目录
遍历文件夹(来源目录, "*.*") -> 文件列表

Excel计数 = 0
CSV计数 = 0

遍历列表(文件列表, 文件路径):
    扩展名 = 获取文件扩展名(文件路径).lower()
    文件名 = 获取文件名(文件路径)
    
    如果 扩展名 == ".xlsx":
        移动文件(文件路径, Excel目标 + 文件名)
        Excel计数 += 1
    
    否则如果 扩展名 == ".csv":
        移动文件(文件路径, CSV目标 + 文件名)
        CSV计数 += 1

# 3. 汇总通知
输出日志(f"整理完成!Excel文件{Excel计数}个,CSV文件{CSV计数}个")

# 4. 合并所有Excel(可选)
如果 Excel计数 > 1:
    # 用Pandas合并所有Excel文件
    Python代码:
        import pandas as pd
        import glob
        
        files = glob.glob("D:\\数据\\Excel\\*.xlsx")
        dfs = [pd.read_excel(f) for f in files]
        merged = pd.concat(dfs, ignore_index=True)
        merged.to_excel("D:\\数据\\Excel\\合并汇总.xlsx", index=False)
        print(f"已合并{len(files)}个Excel文件")

七、一个实用的批量创建文件夹脚本

有些自动化需要为每个店铺创建独立文件夹:

在这里插入图片描述

店铺名列表 = ["店铺A", "店铺B", "店铺C", "店铺D"]

遍历列表(店铺名列表, 店铺名):
    路径 = f"D:\\店铺数据\\{店铺名}"
    如果 非 文件存在(路径):
        创建文件夹(路径)
        输出日志(f"创建文件夹: {路径}")

把"创建必要目录"放在流程开头,避免后面写到路径时因为目标文件夹不存在而报错。


作者:林焱

本文为《影刀RPA学习手册》系列文章之一,内容源于实操经验的整理与分享。

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐