Perl和PHP用反引号来做这件事。例如,
$output = `ls`;
返回目录列表。类似的函数system("foo")
返回给定命令foo的操作系统返回码。我说的是一个变量,它将foo打印的内容返回给stdout。
其他语言是如何做到这一点的?这个函数有没有一个规范的名字?(我使用"backtick";不过也许我可以造出“syslurp”。)
发布于 2008-10-25 17:45:31
Perl:
$output = `foo`;
补充说:这真的是一个多方面的平局。上面的代码也是有效的PHP,例如,Ruby也使用相同的反引号表示法。
发布于 2008-10-25 19:35:51
Python
from subprocess import check_output as qx
output = qx(['ls', '-lt'])
从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())
subprocess模块从2.4开始就已经包含在stdlib中。
发布于 2008-10-25 17:53:25
Python:
import os
output = os.popen("foo").read()
https://stackoverflow.com/questions/236737
复制相似问题