使用os.system触发python脚本时出错。脚本需要sys.argv参数

时间:2017-02-13 14:52:44

标签: python-2.7

简单的script1.py接受参数并通过将它们传递给os.system()来调用script2.py:

#! /usr/bin/env python
import os
import sys
os.system("script2.py sys.argv[1] sys.argv[2]")

运行此:

./script1.py "arg1" "arg2"

获得此单一错误:

sh: 1: script2.py: not found

两个脚本都存在于同一目录中。 在script1.py和script2.py上应用chmod 777并且是可执行的。 两个脚本都调用安装在/ usr / bin / env python上的相同解释器。

当我尝试这些时:

os.system("./script2.py sys.argv[1] sys.argv[2]")
os.system("python script2.py sys.argv[1] sys.argv[2]")

sys.argv [1]和sys.argv [2]被视为字符串而不是动态变量

1 个答案:

答案 0 :(得分:0)

您是否尝试过: ./script2.py "arg1" "arg2"os.system内?

更新2

尝试:

import urllib
call_with_args = "./script2.py '%s' '%s'" % (str(arg1), str(arg2))

os.system(call_with_args)