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

如何通过Python subprocess.run向子进程传递整数输入?

解决Python脚本通过subprocess传递参数的问题

你的需求完全可以实现,但得调整两个脚本的写法,具体如下:

1. 修改被调用的脚本(random.py)

原来用input()获取输入的方式不适合脚本间传参,改成通过命令行参数接收值,用sys.argv来读取:

import sys
l1 = ['Bob', 'Eric', 'Dimitar', 'Kyle']
# sys.argv[0]是脚本本身的名字,sys.argv[1]是第一个传入的参数
n = int(sys.argv[1])
print(l1[n])

2. 修改调用脚本的代码

有两种写法可选:

  • 更安全的写法(不使用shell=True)
    把命令和参数拆成列表传递,避免shell注入风险:
import subprocess

subprocess.run(["python", "random.py", "2"])
  • 使用shell=True的写法
    直接把参数拼到命令字符串里:
import subprocess

subprocess.run("python random.py 2", shell=True)

另外补充下:你之前看不到输入提示,是因为subprocess默认会把子进程的输入输出和父进程的终端断开,所以没法交互输入。用命令行参数的方式既解决了传参问题,也避开了这个交互障碍。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 15:55:21