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

如何在Python中调用另一脚本仅执行一次并获取其中的profile_id变量

解决方法

你之前重复执行SCRIPT1的核心原因是:直接导入未做封装的Python脚本时,Python会默认执行脚本内所有顶层代码,若后续再次调用逻辑就会触发二次执行。可以用以下两种方案实现仅执行一次就拿到profile_id:

方案1:不修改SCRIPT1,直接用exec执行(改动最小)

这个方法直接执行一次SCRIPT1的全部代码,执行完成后profile_id会直接进入当前脚本的命名空间,全程仅执行一次SCRIPT1的请求逻辑:

import json
import random
from os import listdir
from os.path import isfile, join
import time
import requests # 需导入requests,匹配SCRIPT1的依赖

# 仅执行一次SCRIPT1
exec(open('SCRIPT1.py').read())

# 直接使用拿到的profile_id发起请求
mla_url = 'http://127.0.0.1:35000/api/v1/profile/start?profileId=' + profile_id
resp = requests.get(mla_url)
jsoni = resp.json()

注意open()内的SCRIPT1路径要写对,若不在当前工作目录请使用绝对路径。

方案2:封装SCRIPT1为可导入模块(更规范,适合长期维护)

先修改SCRIPT1,把核心逻辑封装到函数中,加上if __name__ == '__main__'判断,避免导入时自动执行顶层逻辑:

# SCRIPT1.py修改后代码
import requests

# 把请求逻辑封装到函数内
def get_profile_id():
    response = requests.request("POST", url, headers=headers, data=payload)
    return response.text

# 仅在单独运行SCRIPT1时才执行以下逻辑,导入时不会触发
if __name__ == '__main__':
    profile_id = get_profile_id()
    # 其他SCRIPT1单独运行时需要执行的代码

然后在主脚本中导入调用即可,全程仅执行一次请求:

import json
import random
from os import listdir
from os.path import isfile, join
import time
import requests
from SCRIPT1 import get_profile_id

# 仅调用一次函数获取profile_id,不会重复执行请求
profile_id = get_profile_id()

# 发起后续请求
mla_url = 'http://127.0.0.1:35000/api/v1/profile/start?profileId=' + profile_id
resp = requests.get(mla_url)
jsoni = resp.json()

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 19:27:01