gpt4 book ai didi

python - 如何将 python 脚本加载到内存中并像命令行一样执行它?

转载 作者:太空宇宙 更新时间:2023-11-03 13:57:04 24 4
gpt4 key购买 nike

我需要将第三方 python 脚本加载到内存中,然后像在命令行上一样执行它,类似于在 PowerShell 中的操作 iex(new-object net.webclient).downloadstring("http://<my ip>/myscript.ps1")然后调用它。

例如,我想将我的 test.py 放在网络服务器上,然后使用命令行开关在本地下载并在内存中执行它,例如:

load("http://<ip>/test.py")
exec("test.py -arg1 value -arg2 value")

我很欣赏这很天真,但感谢任何帮助,谢谢!

最佳答案

这是一个利用 Python 解释器的 -c 选项的 hacky 方法:

>>> import subprocess
>>> pycode = """
... import sys
... if sys.argv[1] == 'foo':
... print('bar')
... else:
... print('unrecognized arg')
... """
>>> result = subprocess.run(['python', '-c', pycode, 'bar'], stdout=subprocess.PIPE)
>>> print(result.stdout.decode())
unrecognized arg

>>> result = subprocess.run(['python', '-c', pycode, 'foo'], stdout=subprocess.PIPE)
>>> print(result.stdout.decode())
bar

这可能会带来一些问题,例如某些平台会限制您作为参数传递的内容的大小。我尝试使用 stdin 来做到这一点,Python 解释器将接受它,但它不会接受参数!

关于python - 如何将 python 脚本加载到内存中并像命令行一样执行它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54154867/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com