我有一个用argparse执行的(python3)脚本。例如:
my_program.py arg0 arg1 arg2=foo
出于调试目的,我希望脚本执行并让我处于打开的解释器会话中。在python解释器中调用脚本的常用方法对我不起作用。例如:
# How to input the program arguments? (arg0 arg1 arg2=foo)
exec(open("my_program.py").read())
# How to inherit the interpreter variables once the program has finished executing?
import subprocess
subprocess.call(["my_program.py", "arg0", "arg1", "arg2=foo"])
# How to input the program arguments? (arg0 arg1 arg2=foo)
import my_program
my_program.main()
在运行并能够输入程序参数之后,是否可以打开程序的解释器?
问题来源:stackoverflow
不是最干净的解决方案。您可以从调用脚本中设置sys.argv:
假设我们有foo.py
:
import sys
print(sys.argv)
我们像这样执行它:
import sys
sys.argv = ["arg1", "arg2"]
exec(open('foo.py').read())
我们得到:
['arg1', 'arg2']
回答来源:stackoverflow
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。