如何在Python中将参数传递给exec()

问题描述 投票:0回答:2

我已经使用

pyinstaller
将我的 python 脚本转换为 exe。这个exe需要调用另一个python脚本。现在
pyinstaller
绑定了 python 解释器,这样我们就可以调用任何其他 python 脚本,如下所示:

exec(open('external_script.py').read())

这将执行

external_script.py
。我想使用 exec 执行
external_script.py install
。所以我也想传递
install
作为参数。如下所示:

exec(open('external_script.py').read(), {'install'})

在上面的代码行中,我将 install 作为参数传递。但在这里我不确定这是否是正确的语法。谁能告诉我如何在 exec python 中传递参数。谢谢

python arguments exec
2个回答
3
投票

要将参数传递给

exec()
,您需要将
dict
作为全局/局部变量的参数传递,而不是
set

exec(open('external_script.py'.read(),{'argv':'install'})

并且它将在

argv
范围内创建
exec()
引用,如果将数组传递给
external_script.py
,则必须将以下内容添加到代码中

for i in argv: sys.argv.append(i)

注意:如果您使用

from sys import argv
导入 argv,它将覆盖您用
['external_script.py']

传递的值

2
投票

os.system
用于执行cmd命令

import os

cmd=input("type a cmd statement here")
try:
    exec(os.system(cmd))
except Exception as e:
    print(e)

对你来说将会是

os.system("external_script.py install")

其中

install
是传递给
external_script.py

的参数
© www.soinside.com 2019 - 2024. All rights reserved.