/usr/bin/python:在使用子进程时,在“/”中找不到“\uuu main\uuu.py”。

2024-09-28 06:12:41 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在编写一个Python脚本来完成一些管理功能,其中包括运行其他几个Python脚本。

我的代码中的一个片段如下所示:

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__""检查/测试。那么是什么导致了这个错误呢?


Tags: name脚本ifbinmaindirscriptsdo
1条回答
网友
1楼 · 发布于 2024-09-28 06:12:41

正如注释中指出的,您应该使用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

相关问题 更多 >

    热门问题