这段Python代码做了什么:shell=(sys.platform!="win32")

1 投票
2 回答
659 浏览
提问于 2025-04-15 15:55

我不太明白这段代码在干嘛。 我想在Mac OS X上运行一个命令行,而我用的代码是从一个在Windows命令行上运行的人那里拿来的。虽然这个命令还是能执行,但我想知道这个sys.platform!="win32"是干什么的,是否需要把它改成其他的东西来适应Mac OS X。看起来它是在说sys.platform不是Win32,但我觉得这不太对。

return_code = subprocess.call(str(cline), shell=(sys.platform!="win32"))

2 个回答

3

和下面这个一样:

if sys.platform!="win32":
    return_code = subprocess.call(str(cline), shell=True)
else
    return_code = subprocess.call(str(cline), shell=False)

可以查看 subprocess 文档(执行 cline

6

这段代码的作用和不作用的地方如下:

  • 它不能编译(语法错误 - 你需要在参数之间加个逗号),- 现在已经不是了。
  • 它会启动一个子进程,如果你不是在Windows系统上,它会通过命令行来启动。这里的“shell”参数可以是True或者False,而sys.platform != 'win32'也可以是True或者False。

撰写回答