插入Python代码
指令说明
- 曲辕RPA会把流程翻译成Python代码并执行,您插入的Python代码会插入到预期的位置
- 您可以插入任意行Python代码,新建类、方法、调用方法、调用三方库等等均可,即使导出为扩展指令、应用后,其他电脑导入后仍旧可以正常执行Python代码
- 无需关心代码缩进问题
- 您可以直接读写流程中的Python变量
指令输入参数
| 输入参数 | 输入参数类型 | 说明 |
|---|---|---|
| Python代码 | Python语句 | Python代码 |
指令输出参数
无
示例1
in.Python代码 的值会直接插入到Python源码中,无需再次使用引号包裹。
[
{
"children": [],
"in": {
"浏览器类型": "'Google Chrome'",
"匹配方式": "'当前打开的网页'",
"等待加载完成时间": "30"
},
"out": {
"网页对象": "web_page"
},
"ins": "获取已打开的网页"
},
{
"children": [],
"in": {
"Python代码": "print(f'{web_page.title} {web_page.url}')"
},
"ins": "插入Python代码"
}
]
示例2
无缝插入Python代码

- 插入的Python代码
def cmp(goods):
return goods['count']
有序列表 = sorted(商品列表, key=cmp,reverse=True)
- 最终执行的代码
# -*- coding: utf-8 -*-
import sys
from builtin import *
from debuger import call_flow_wrapper
def run(args):
if args:
pass
淘宝官网 = open_web_page("https://www.taobao.com/", "Google Chrome")
商品列表 = execute_js(淘宝官网, None, "async function (htmlElement, param) {\n const goods = []\n const elements = document.querySelectorAll('.tb-pick-content-item')\n for (let element of elements) {\n const name = element.querySelector('.info-wrapper').innerText\n const price = parseInt(element.querySelector(\".price-value\").innerText)\n const count = parseInt(element.querySelector(\".month-sale\").innerText)\n goods.push({\n name,\n price,\n count\n })\n }\n return goods\n}", "", {"wait":"20"})
# 插入的代码 - 开始
def cmp(goods):
return goods['count']
有序列表 = sorted(商品列表, key=cmp,reverse=True)
# 插入的代码 - 结束
for ____rpa_gen_itr_loop_index, 商品 in enumerate(有序列表):
print_to_app(商品, {"renderHtml":True})
@call_flow_wrapper("主流程")
def main(args=None):
return run(args)
查看Python代码
运行应用后会自动生成Python代码,您可以通过 windows文件资源管理器 打开如下路径查看生成的Python代码
- 个人版 C:\Users\您的电脑用户名\AppData\Roaming\quyuan\Personal\用户ID\apps\应用名称\code
- 企业办 C:\Users\您的电脑用户名\AppData\Roaming\quyuan\Enterprise\0\apps\应用名称\code
例如: C:\Users\young\AppData\Roaming\quyuan\Personal\2\apps\示例应用\code C:\Users\young\AppData\Roaming\quyuan\Enterprise\0\apps\教学实例\code
- 搭建的流程

- 运行的Python代码

如果您遇到Python代码问题也可以直接复制该文件并询问AI(不要直接修改该文件,每次运行时会重新生成该文件)
特别提醒
- 您搭建的流程及插入的Python代码会被添加到def run(args)方法中并执行,因此您在插入Python代码指令中定义的变量并不是全局变量,您可以通过Python
nonlocal关键字读写局部变量,使用Pythontextwrap.dedent方法移除f-string前置空格

- 每个子流程都对应一个py文件,您可以通过如下方式获取其他流程定义的全局变量
- 流程A设置全局变量

- 流程B读写全局变量

- 流程A设置全局变量