我想从另一个内部运行python脚本.在内部,我的意思是来自子脚本的任何状态更改都会影响父级的状态.因此,如果在子项中设置了变量,则会在父项中更改它.
通常你可以做类似的事情
import module
Run Code Online (Sandbox Code Playgroud)
但问题是这里运行的子脚本是父脚本的参数,我认为你不能使用带变量的import
像这样的东西
$python run.py child.py
Run Code Online (Sandbox Code Playgroud)
这将是我期望发生的事情
#run.py
#insert magic to run argv[1]
print a
#child.py
a = 1
$python run.py child.py
1
Run Code Online (Sandbox Code Playgroud)
您可以使用__import__允许您动态导入模块的功能:
module = __import__(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)
(您可能需要删除尾随.py或不在命令行中指定它.)
从Python文档:
直接使用
__import__()很少见,除非您要导入名称仅在运行时已知的模块.