执行一个系统调用,将stdout输出作为一个字符串返回。

23 浏览
0 Comments

执行一个系统调用,将stdout输出作为一个字符串返回。

Perl和PHP可以使用反引号来实现这一功能。例如,

$output = `ls`;

可以返回目录列表。类似的函数system(“foo”)返回给定命令foo的操作系统返回代码。我所说的是返回foo打印到stdout的任何内容的变体。其他语言如何实现这一功能?这个函数有一个规范的名称吗?(我使用“backtick”;但也许我可以创造“syslurp”这个词)。

admin 更改状态以发布 2023年5月21日
0
0 Comments

\n\nPython:\n

import os
output = os.popen("foo").read()

0
0 Comments

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模块已经在标准库中。

0