我正在编写一个Python脚本来执行一些管理功能,其中包括运行其他几个python脚本。
我的代码的snipet看起来像这样:
import subprocess
PYTHON_BIN_DIR = '/usr/bin/python'
SCRIPTS_DIR = '/some/path'
if __name__ == "__main__":
dateparam = "05-Jan-2012"
command = [PYTHON_BIN_DIR]
command.extend(SCRIPTS_DIR + "/myfile1.py")
strparams = " --param1={0} ".format(123)
command.extend(strparams)
command.extend(dateparam)
retcode = subprocess.call(command)
if retcode != 0:
# do something
pass
else:
# do something else
pass
我正在调用的所有脚本都在使用if __name__ == ""__main__""
检查/测试。那是什么导致错误?
答案 0 :(得分:1)
正如评论中指出的那样,您应该使用append
而不是extend
。我认为你的另一个问题是你在论证中包含了空格。我会拆分每个参数,即--param1=123
:
import subprocess
import os.path
PYTHON_BIN_DIR = '/usr/bin/python'
SCRIPTS_DIR = '/some/path'
if __name__ == "__main__":
dateparam = "05-Jan-2012"
command = [PYTHON_BIN_DIR, os.path.join(SCRIPTS_DIR, 'myfile1.py'),
'--param1', 123, '--date', dateparam]
retcode = subprocess.call(command)
if retcode != 0:
# do something
pass
else:
# do something else
pass