python bash_如何在Python中实现常见的bash习语?

任何shell都有几组功能.

> Essential Linux / Unix命令.所有这些都可以通过subprocess库获得.这并不总是执行所有外部命令的最佳选择.对于某些作为单独Linux命令的命令,请参见shutil,但您可以直接在Python脚本中实现.另一大批Linux命令位于os库中;你可以在Python中更简单地完成这些.

而且 – 奖金! – 更快速. shell中的每个单独的Linux命令(除了少数例外)都会分叉子进程.通过使用Python shutil和os模块,您不需要分叉子进程.

> shell环境功能.这包括设置命令环境的东西(当前目录和环境变量以及什么不是).您可以直接从Python轻松管理它.

> shell编程功能.这是所有进程状态代码检查,各种逻辑命令(if,while,for等)测试命令及其所有亲属.功能定义的东西.在Python中,这一切都变得非常容易.这是摆脱bash并在Python中完成它的巨大胜利之一.

>互动功能.这包括命令历史记录和什么不是.您不需要这个来编写shell脚本.这仅适用于人工交互,不适用于脚本编写.

> shell文件管理功能.这包括重定向和管道.这比较棘手.其中大部分可以通过子进程完成.但是在shell中一些容易的东西在Python中是令人不快的.特别是像(a | b; c)|的东西某事>结果.这将并行运行两个进程(输出为b的输入),然后是第三个进程.该序列的输出与某些内容并行运行,输出被收集到名为result的文件中.用任何其他语言表达都很复杂.

特定程序(awk,sed,grep等)通常可以重写为Python模块.不要过火.替换你需要的东西并改进你的“grep”模块.不要开始编写替换“grep”的Python模块.

最好的是你可以分步完成.

>用Python替换AWK和PERL.别管其他一切.

>看看用Python替换GREP.这可能有点复杂,但您的GREP版本可以根据您的处理需求进行定制.

>看看用使用os.walk的Python循环替换FIND.这是一个很大的胜利,因为你不会产生尽可能多的进程.

>看看用Python脚本替换常见的shell逻辑(循环,决策等).

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值