我已经使用
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 中传递参数。谢谢
要将参数传递给
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']
传递的值
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
的参数