跳转到主要内容

运行子进程的库

项目描述

duct.py Actions状态 覆盖率状态 PyPI版本 文档状态

Duct是一个用于运行子进程的库。Duct使构建管道和重定向IO变得像shell一样简单。同时,Duct帮助您编写正确、可移植的代码:空白符永远不具有意义,子进程的错误默认由错误报告,以及处理各种陷阱、错误和平台不一致性

示例

运行一个不捕获任何输出的命令。这里"hi"直接打印到终端

>>> from duct import cmd
>>> cmd("echo", "hi").run()
hi
Output(status=0, stdout=None, stderr=None)

捕获命令的标准输出。这里"hi"作为字符串返回

>>> cmd("echo", "hi").read()
'hi'

捕获管道的标准输出

>>> cmd("echo", "hi").pipe(cmd("sed", "s/i/o/")).read()
'ho'

将标准错误合并到标准输出,并增量读取两者

>>> big_cmd = cmd("bash", "-c", "echo out && echo err 1>&2")
>>> reader = big_cmd.stderr_to_stdout().reader()
>>> with reader:
...     reader.readlines()
[b'out\n', b'err\n']

默认情况下,退出状态非零的子进程将引发异常

>>> cmd("false").run()
Traceback (most recent call last):
...
duct.StatusError: Expression cmd('false') returned non-zero exit status: Output(status=1, stdout=None, stderr=None)
>>> cmd("false").unchecked().run()
Output(status=1, stdout=None, stderr=None)

项目详情


下载文件

下载适用于您的平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源分发

duct-0.6.4.tar.gz (16.4 kB 查看哈希值)

上传时间

由以下支持