执行一个系统调用,将stdout输出作为一个字符串返回。
执行一个系统调用,将stdout输出作为一个字符串返回。
Perl和PHP可以使用反引号来实现这一功能。例如,
$output = `ls`;
可以返回目录列表。类似的函数system(“foo”)
返回给定命令foo的操作系统返回代码。我所说的是返回foo打印到stdout的任何内容的变体。其他语言如何实现这一功能?这个函数有一个规范的名称吗?(我使用“backtick”;但也许我可以创造“syslurp”这个词)。
admin 更改状态以发布 2023年5月21日
Python
from subprocess import check_output as qx output = qx(['ls', '-lt'])
Python 2.7或3.1
从subprocess.py提取subprocess.check_output()
或适应类似的东西:
import subprocess def cmd_output(args, **kwds): kwds.setdefault("stdout", subprocess.PIPE) kwds.setdefault("stderr", subprocess.STDOUT) p = subprocess.Popen(args, **kwds) return p.communicate()[0] print cmd_output("ls -lt".split())
自2.4版本以来,subprocess模块已经在标准库中。