Python Plumbum 简介:用 Python 来写脚本

你是否曾希望将 shell 脚本紧凑地融入到真正的编程语言里面? 那么可以了解下 Plumbum Shell 组合器。

-- Tomer Filiba

致谢

编译自 | https://plumbum.readthedocs.io/en/latest/

作者 | Tomer Filiba

译者 | qhh0205 共计翻译:1篇 贡献时间:24 天

Plumbum:Shell 组合器

你是否曾希望将 shell 脚本紧凑地融入到真正的编程语言里面? 那么可以了解下 Plumbum Shell 组合器。Plumbum (lead 的拉丁语,以前用来制作管道)是一个小型但功能丰富的类库,用于以 Python 进行类似 shell 脚本编程。该库的理念是 “永远不要再写 shell 脚本”,因此它试图合理地模仿 shell 语法(shell 组合器),同时保持Python 特性和跨平台。

除了类似 shell 的语法

[1]

和便捷的快捷方式

[2]

之外,该库还提供本地和远程

[3]

命令执行(通过 SSH)、本地和远程文件系统路径

[4]

、简单的工作目录和环境操作

[5]

、快捷访问 ANSI 颜色,以及编程命令行接口(CLI)

[6]

应用程序工具包。现在让我们看一些代码!

其最新版本 1.6.6 发布于 2018 年 2 月 12 日。

快捷使用指南

基本使用

不需要为每个你想使用的命令写 ,你可以导入命令行

[7]

参见本地命令行

[1]

管道

参见管道

[8]

重定向

参见输入/输出重定向

[9]

工作目录操作

参见路径

[4]

和本地对象

[5]

前台后和后台执行

参见前台和后台

[10]

命令行嵌套

参见命令行嵌套

[11]

远程命令(通过 SSH)

参见远程

[12]

CLI 应用程序

输出样例:

参见命令行应用程序

[6]

颜色和风格

输出样例:

参见颜色

[13]

开发和安装

该库在Github

[14]

上开发,非常乐意接受来自用户的补丁

[15]

。请使用 GitHub 的内置issue 跟踪器

[16]

报告您遇到的任何问题或提出功能上的需求。该库在IMIT 许可

[17]

下发布。

要求

Plumbum 支持 Python 2.6-3.6 和 PyPy,并且通过Travis CI

[18]

和Appveyor

[19]

持续地在 Linux,Mac 和 Windows 机器上测试。Plumbum 在任何类 Unix 的机器都应该可以正常工作,但是在 Windows 上,你也许需要安装一个合适的coreutils

[20]

环境并把其加入到你的环境变量中。我推荐mingw

[21]

(与Windows Git

[22]

捆绑在一起),但是cygwin

[23]

应该也可以。如果你仅仅是使用 Plumbum 代替 Popen 来运行 Windows 程序,那么就不需要 Unix 工具了。 注意远程命令的执行,你需要一个 openSHH 兼容的客户端(同样与 Windows Git 捆绑在一起)和一个 bash 兼容的 shell,也需要在主机上有一个 coreutils 环境。

下载

你可以在Python Package Index

[24]

(多种格式)下载该库,或者直接运行 。如果你使用 Anaconda,你可以使用 从 通道获取。

用户指南

用户指南涵盖了 Plumbum 大部分功能,拥有大量的代码片段,你可以不用花多少时间即可开始使用。该指南逐渐介绍概念和"语法",因此推荐你按照顺序阅读。一个有效的快速参考指南

[25]

。略。。。

关于

Plumburn 最初的目的是让本地和远程程序轻松地执行,假设没有比老的 ssh 更时髦的东西了。在此基础上,设计了一个文件系统抽象层,以便能够无缝地处理本地和远程文件。 我有这个想法一段时间了,直到我必须要个给我当前工作的项目写一个构建脚本,我决定使用 shell 脚本,现在是实现它的时候了。Plumbum 诞生自 类的片段和我为RPyC

[26]

写的 和 类。 类是我为前面说的构建系统写的。当我将两者与shell 组合器(因为 shell 脚本在这里确实有优势)组合在一起时,奇迹就发生了,便产生了Plumbun。

致谢

该项目受到了Andrew Moffat的PBS(现在被称作sh

[28]

)启发,并且借用了他的一些思想(即像函数一样看待程序,导入命令行的技巧)。然而我感觉在 PBS 中有太多的神秘的东西,当我编写类 shell 程序时,语法不是我想要的。关于这个问题我联系了 Andrew,但是他想让 PBS 保持这种状态。除此之外,两个库走不同的方向,Plumbum 试图提供一种更合理的方法。

Plumbum 也向Rotem Yaari

[29]

致敬,他为特定的目的建议了一个代号为 的库,但是尚未实现过。

  • 发表于:
  • 原文链接http://kuaibao.qq.com/s/20180323B0VLL700?refer=cp_1026
  • 腾讯「云+社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券