命令失败的python子进程返回代码0

2024-07-04 05:40:01 发布

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

我在windows cmd和ubuntu bash中执行以下代码:

python -c "import xxx"

输出错误消息。当我跑的时候:

^{pr2}$

值为1。在

当我在python脚本中使用以下子进程执行相同的任务时:

cmdlst = ['python', '-c', '“import xxx”‘]
proc = subprocess.Popen(cmdlst)
retcode = proc.wait()

retcode为0。 问题是什么?如何获得命令的正确返回代码 在子流程中运行。在

提前谢谢。在


Tags: 代码import脚本cmdbash消息进程ubuntu
1条回答
网友
1楼 · 发布于 2024-07-04 05:40:01

运行shell命令(相当于您给定的subprocess.Popen()调用,如果我们忽略“智能引号”的使用)

'python' '-c' '"import xxx"'

无论名为xxx的模块是否存在,都会正确退出,状态为0。在

这是因为"import xxx"是一个字符串,对字符串求值不会引发异常。您将从python -c '"hello world"'或任何其他字符串获得完全相同的行为。在


如果您真的想尝试执行代码import xxx,那么您需要删除额外的引号:

^{pr2}$

…将正确返回1(如果不存在xxx模块)。在

相关问题 更多 >

    热门问题