探秘不同寻常的Python程序
创始人
2024-06-22 10:01:34
0

Python 在近年来的受欢迎程度剧增,部分原因在于该语言非常灵活,同时功能非常强大。Python 可用于系统管理、Web 开发、GUI 编程、科学计算等等。

Python 的这种日益流行性意味着,对于目前使用其他编程语言的开发人员,除了使用他们最喜欢的语言之外,他们还可以采用 Python 来完成某些项目。 过程式编程当然有其用武之地,并且可能是解决某个问题的高度有效的方法。在非常基本的层次上,过程式编程可定义为指令的列表。

Bash 和 PHP 通常就是以这样的方式编写的。然而由于 Python 的流行,对于作为 Web 开发人员或系统管理员的 PHP 和 Bash 脚本编写人员,他们正陷入必须同时学习面向对象的编程和 Python 的境地。 面向对象这个概念很难一次性地掌握,因此本文采用过程式 Bash 和 PHP 脚本,并首先将它们转换为过程式 Python。作为最后一步。

它们将转换为面向对象的 Python 这个终结目标。本文在结束时将简略讨论一下面向对象的 Python 的一些优点,然后在最后讨论一些可能更适合采用过程或函数式编程的一些不利场景。到本文结束时,Bash 或 PHP 程序员应该能够毫无畏惧地一头扎进面向对象的 Python 项目。 #t#

如果您以前没有听说过函数式编程,我强烈建议您阅读参考资料部分中的一些有关函数式编程的文章。不过简而言之,可以将函数式编程描述为“分发函数”。通常,与面向对象的编程相比。

函数式编程是表达某个想法的更简洁和更清楚的方法。 采用 PHP 和 Bash 编写磁盘监视函数虽然 PHP 主要是为了在浏览器中运行,但是也可以通过 exec 函数执行系统调用。

采用 PHP 编写的第一个示例将捕获 Shell 命令“df –h”的输出,将输出放在一个数组中,然后根据一个正则表达式检查输出的每一行。如果该行与正则表达式匹配,则打印该行。如果您希望从主目录运行此示例,只需将此脚本命名为 index.php,并将其放在 Apache/mod_php 服务器的对外服务

  1.  
  2.  
  3.  
  4.  
  5. //Analyzes disk usage  
  6. //Takes regex pattern and message  
  7. function disk_space( $pattern="/2[0-9]%/", $message="CAPACITY WARNING:" )  
  8.  
  9. {  
  10.     exec(escapeshellcmd("df -h"),$output_lines,$return_value);  
  11.     foreach ($output_lines as $output) {  
  12.         if (preg_match( $pattern, $output ))  
  13.             echo "$message $output  />";  
  14.  
  15.     }  
  16. }  
  17.  
  18. disk_space()  
  19.  
  20. ?> 
  21.  
  22.  

查看该代码,可以看到正则表达式模式被设置为匹配某个包含 20-29% 的行。可以容易地修改此模式以适应其他标志,例如 90-99%,因为 20% 是非常低的磁盘容量。 下面让我们看一下如何在 Bash 函数中完成同样的事情。

在 Bash 中,该问题要容易解决得多,因为您实际上是在处理系统调用。在此示例中,您甚至不需要使用数组或正则表达式库,因为使用到 grep 的管道容易多了。不过,在 Bash 中设置函数的缺省参数始终有点麻烦。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...