36.16. 命令 — 用于运行命令的实用程序

Deprecated since version 2.6: The 命令 module has been removed in Python 3. Use the subprocess 模块代替。

The 命令 module contains wrapper functions for os.popen() which take a system command as a string and return any output generated by the command and, optionally, the exit status.

The subprocess module provides more powerful facilities for spawning new processes and retrieving their results. Using the subprocess module is preferable to using the 命令 模块。

注意

In Python 3.x, getstatus() and two undocumented functions ( mk2arg() and mkarg() ) have been removed. Also, getstatusoutput() and getoutput() have been moved to the subprocess 模块。

The 命令 模块定义了下列函数:

命令。 getstatusoutput ( cmd )

执行字符串 cmd 在 Shell 采用 os.popen() 并返回 2 元素元组 (status, output) . cmd is actually run as { cmd ; } 2>&1 , so that the returned output will contain output or error messages. A trailing newline is stripped from the output. The exit status for the command can be interpreted according to the rules for the C function wait() .

命令。 getoutput ( cmd )

getstatusoutput() , except the exit status is ignored and the return value is a string containing the command’s output.

命令。 getstatus ( file )

Return the output of ls -ld file as a string. This function uses the getoutput() function, and properly escapes backslashes and dollar signs in the argument.

Deprecated since version 2.6: This function is nonobvious and useless. The name is also misleading in the presence of getstatusoutput() .

范例:

>>> import commands
>>> commands.getstatusoutput('ls /bin/ls')
(0, '/bin/ls')
>>> commands.getstatusoutput('cat /bin/junk')
(256, 'cat: /bin/junk: No such file or directory')
>>> commands.getstatusoutput('/bin/junk')
(256, 'sh: /bin/junk: not found')
>>> commands.getoutput('ls /bin/ls')
'/bin/ls'
>>> commands.getstatus('/bin/ls')
'-rwxr-xr-x  1 root        13352 Oct 14  1994 /bin/ls'
					

另请参阅

模块 subprocess
Module for spawning and managing subprocesses.

上一话题

36.15. syslog — Unix syslog 库例程

下一话题

37. Mac OS X 特定服务

本页