Python,动态调用脚本

Mik*_*ike 5 python command

我想从另一个内部运行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)

Gre*_*ill 9

您可以使用__import__允许您动态导入模块的功能:

module = __import__(sys.argv[1])
Run Code Online (Sandbox Code Playgroud)

(您可能需要删除尾随.py或不在命令行中指定它.)

从Python文档:

直接使用__import__()很少见,除非您要导入名称仅在运行时已知的模块.

  • @Mike:确定,修改`sys.path`,也许是这样的:`sys.path.append("/ your/module/directory")` (2认同)