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

如何在可执行Python脚本与另一Python脚本间共享参数/变量?

脚本间参数传递方案:从test.py传参到main.py

你需要实现的是让test.py接收命令行参数,再传递给通过os.system调用的main.py,以下是可行的修改方案:

方案一:命令行参数直接传递

修改test.py

已经通过argparse拿到了参数args.test,只需在调用main.py时把参数拼接到命令行中:

import os, argparse

parser = argparse.ArgumentParser()
parser.add_argument("-t", "--test", action="store", help="Store argument as variable")
args = parser.parse_args()

# 将参数作为命令行参数传递给main.py
os.system(f"python main.py {args.test}")

修改main.py

通过sys.argv接收命令行参数(或者用argparse做更规范的解析):

import sys

# 检查是否有传入参数
if len(sys.argv) > 1:
    print(sys.argv[1])

如果想用更规范的argparse解析:

import argparse

parser = argparse.ArgumentParser()
parser.add_argument("test_val", help="接收来自test.py的参数")
args = parser.parse_args()

print(args.test_val)

方案二:通过环境变量传递

修改test.py

把参数存入环境变量,main.py读取该环境变量:

import os, argparse

parser = argparse.ArgumentParser()
parser.add_argument("-t", "--test", action="store", help="Store argument as variable")
args = parser.parse_args()

# 设置环境变量
os.environ["TEST_PARAM"] = args.test

os.system("python main.py")

修改main.py

读取环境变量并打印:

import os

test_param = os.getenv("TEST_PARAM")
if test_param:
    print(test_param)

原代码问题说明

你原来在main.py中使用from __main__ import *是无效的,因为test.py和main.py是两个独立的Python进程,它们的内存空间完全隔离,无法直接共享变量,必须通过进程间通信方式(比如命令行参数、环境变量)传递数据。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.31 17:40:58