当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python os.spawnl用法及代码示例


用法:

os.spawnl(mode, path, ...)
os.spawnle(mode, path, ..., env)
os.spawnlp(mode, file, ...)
os.spawnlpe(mode, file, ..., env)
os.spawnv(mode, path, args)
os.spawnve(mode, path, args, env)
os.spawnvp(mode, file, args)
os.spawnvpe(mode, file, args, env)

在新进程中执行程序path

(请注意,subprocess 模块为生成新进程和检索其结果提供了更强大的工具;使用该模块比使用这些函数更可取。特别检查用子进程模块替换旧函数部分。)

如果 modeP_NOWAIT ,该函数返回新进程的进程id;如果 modeP_WAIT ,如果进程正常退出,则返回进程的退出代码,或者 -signal ,其中 signal 是杀死进程的信号。在 Windows 上,进程 ID 实际上是进程句柄,因此可以与 waitpid() 函数一起使用。

注意VxWorks 当新进程被杀死时,这个函数不会返回-signal。相反,它会引发 OSError 异常。

spawn* 函数的 “l” and “v” 变体在 命令行 参数的传递方式上有所不同。如果在编写代码时参数的数量是固定的,那么“l” 变体可能是最容易使用的;单个参数只是成为spawnl*() 函数的附加参数。当参数的数量可变时,“v” 变体很好,参数作为 args 参数在列表或元组中传递。在任何一种情况下,子进程的参数都必须以正在运行的命令的名称开头。

在结尾处包含第二个 “p” 的变体(spawnlp(),spawnlpe(),spawnvp(), 和spawnvpe()) 将使用PATH用于定位程序的环境变量file.当环境被替换时(使用其中一种os.spawnl变体,在下一段中讨论),新环境被用作PATH多变的。其他变种,os.spawnl,spawnle(),spawnv(), 和spawnve(), 不会使用PATH用于定位可执行文件的变量;path必须包含适当的绝对或相对路径。

对于spawnle()spawnlpe()spawnve()spawnvpe()(注意这些都以“e”结尾),env参数必须是一个映射,用于定义新进程的环境变量(它们被用来代替当前进程的环境); spawnl()spawnlp()spawnv()spawnvp()函数都会使新进程继承当前进程的环境。注意env字典中的键和值必须是字符串;无效的键或值将导致函数失败,返回值为 127

例如,以下对 spawnlp()spawnvpe() 的调用是等效的:

import os
os.spawnlp(os.P_WAIT, 'cp', 'cp', 'index.html', '/dev/null')

L = ['cp', 'index.html', '/dev/null']
os.spawnvpe(os.P_WAIT, 'cp', L, os.environ)

使用参数 modepathargsenv 引发审计事件 os.spawn

可用性:Unix、Windows。 spawnlp()spawnlpe()spawnvp()spawnvpe() 在 Windows 上不可用。 spawnle()spawnve() 在 Windows 上不是线程安全的;我们建议您改用subprocess 模块。

在 3.6 版中更改:接受一个path-like 对象.

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 os.spawnl。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。