2

我想使用 Python 创建一个简单的“虚拟 bash”脚本,它接收命令并返回 stdio 输出。像这样的东西:

>>> output = bash('ls')
>>> print output
file1 file2 file3
>>> print bash('cat file4')
cat: file4: No such file or directory

有谁知道允许这种情况发生的模块/功能?我找不到一个。

4

1 回答 1

6

subprocess模块包含所有问题的答案。特别是,check_output似乎完全按照您的意愿行事。页面示例:

>>> subprocess.check_output(["echo", "Hello World!"])
'Hello World!\n'

>>> subprocess.check_output("exit 1", shell=True)
Traceback (most recent call last):
   ...
subprocess.CalledProcessError: Command 'exit 1' returned non-zero exit status 1

如果 shell 为 True,指定的命令将通过 shell 执行。如果您将 Python 主要用于它在大多数系统 shell 上提供的增强控制流,并且仍然希望访问其他 shell 功能,例如文件名通配符、shell 管道和环境变量扩展,这将很有用。

于 2012-08-18T02:41:30.613 回答