While循环
While循环
描述:当条件为真时,进入循环操作
属性说明
通用属性
- 前置延时 - 组件功能执行之前等待的时间,单位为“ms”
- 后置延时 - 组件功能执行后等待的时间,单位为“ms”
- 备注- 组件备注说明,以便于理解和快速定位
目标属性
- 条件 - 输入进行逻辑判定的条件语句
流程引脚
- 循环过程 - 设计循环执行处理的步骤流程
- 循环未中断时运行 - 流程正常循环结束执行的步骤流程
使用示例
执行逻辑
场景
以“文件处理”为例,来展示如何使用实际场景中使用【while循环】组件。 假设我们有一个文件夹,里面包含多个Excel文件,每个文件结构相同。我们需要遍历这些文件,读取每个文件中的数据,并将数据汇总到一个总的Excel文件中。
前置条件
准备一个名为《2024销售额汇总》的文件夹,里面有5张1-5月销售记录的excel表,表内包含客户名称、产品、总购买数、销售额(万元)、销售日期。
步骤
1、点击“+”,新建一个子流程--->拖动开始节点,松手后在弹出的组件弹窗中搜索【查找文件】组件,选中添加--->在属性面板的“路径”处点击,选择《2024销售额汇总》文件夹,其他属性保持默认值
2、添加一个流程参数:pv_1--->将pv_1命名为文件列表--->将【查找文件】组件的“返回值”连接到“文件列表”这个流程参数上
3、添加【代码块】组件--->添加一个流程参数:pv_2,,将其命名为文件总数量--->在【代码块】属性右侧编写代码/双击组件进入代码模式中--->输入内容如下:
# 示例字符串
print(f"文件列表:{文件列表}")
文件总数量=len(文件列表)
print(f"文件总数量:{文件总数量}")
4、添加【创建Excel】组件--->在右侧属性“路径”处点击,选择路径进行创建--->在“文件名”处输入:2024年度销售额汇总--->在”是否覆盖”处选择“是”,默认覆盖上一次的文件
5、添加【读取Excel】组件--->在右侧属性“文件路径”处输入:文件列表[0],0代表文件夹里的第一个Excel,读取文件夹里的第一个表格即可--->添加一个流程参数:pv_1,将此变量连接到【读取Excel】组件的“返回值”上
6、添加【dataframe遍历】组件--->将【读取Excel】的“返回值”节点连接到【dataframe遍历】的“dataframe”节点处
7、在【dataframe遍历】的“过程”节点后拖动添加【dataframe转list】组件--->将“row”节点连接“df”上
8、添加【写入行】组件--->将【写入行】的“文件”节点连接【创建Excel】的“返回值”节点上--->在右侧属性“输入值”处输入:pv_1.columns.tolist(),用来获取excel的表头内容;
9、添加【while循环】组件--->添加一个流程参数,将其命名为文件索引,默认值处输入0--->在【While循环】的右侧属性“条件”中输入:文件索引<文件总数量
10、添加【相加】组件--->将【While循环】的“过程”节点连接【相加】组件
11、添加【读取Excel】组件--->在右侧属性“文件路径”处输入:文件列表[文件索引],读取5个excel表格的内容
12、添加【dataframe遍历】组件--->将【读取Excel】的“返回值”节点连接到【dataframe遍历】的“dataframe”节点处
13、添加【自加】组件--->将“x”节点连接变量【文件索引】,“返回值”连接到变量【文件索引】,每循环一次,做自加操作,当文件索引直到超过文件总数后停止循环
14、在【dataframe遍历】的“过程”节点后拖动添加【dataframe转list】组件--->将“row”节点连接“df”
15、添加【字符串长度】组件--->将【dataframe转list】的“返回值”连接到“对象文本”中--->添加一个流程变量pv_2,默认值输入0--->将【字符串长度】的返回值连接到变量pv_2上
16、回到【相加】组件处--->添加一个流程变量pv_3,默认值输入0-->将【相加】组件的a节点连接变量pv_3,b节点连接变量pv_2,“返回值”处连接变量pv_3
17、最后添加【写入行】组件--->将【写入行】的“文件”节点连接到【创建excel】的“返回值”节点上--->将【写入行】的“输入值”节点连接【dataframe转list】的“返回值”节点上--->在【写入行】右侧的目标属性的单元格处输入:f’A{index+pv_3+2}’--->运行流程
输出结果
运行流程,系统将自动读取文件夹内的5张表格,并汇总在名为“2024年销售额汇总”的总表中。