我有一个 python 脚本,它充当其他脚本的启动器。该脚本从输入参数启动脚本,以下是一些相关代码:
try:
if verbose:
print("Calling script ", args.script, " with arguments", *args.script_argument)
os.execl(args.script, *args.script_argument)
except OSError as e:
print("OSError: [Errno {0}] {1}: {2}".format(e.errno, e.strerror, args.script), file=sys.stderr)
args
是parse_args()
from返回的对象ArgumentParser
。args.script_arguments
用 检索nargs=argparse.REMAINDER
。
这是启动器正在调用的脚本:
import sys
if __name__ == '__main__':
print(sys.argv)
从调用前的打印中os.execl
,我可以看到参数设置正确,但是脚本打印的参数较少。
例如,如果调用启动器./launcher.py -v script foo bar
启动器将打印 , Calling script script with arguments foo bar
。
但是,脚本会打印['script.py', 'bar']
. 为什么不foo
从脚本打印?