应用在简单的任务,例如一些shell编程。对比Java,Python的实现更为简洁,你编写的时间更快.你不需要写main函数,并且这个程序保存之后可以直接运行.另外,和Java一样,Python也是跨平台的。做web程序、桌面软件、网络程序、科学计算、文本处理、图像处理。。。
需求,批量测试IP是否能ping通。
import os
begin = 77;
while begin<78:
ip = "172.20.8."+str(begin)
begin = begin + 1
cmd = 'ping %s'%ip
backinfo = os.popen(cmd)
info = backinfo.read()
print (info)
#backinfo = os.system(cmd)
#print (backinfo)
if ('无法访问目标主机') in info:
print (ip+' ping fail')
elif ('已接收 = 4') not in info:
print (ip+' ping fail')
else:
print(ip+' ping success')
结果:
正在 Ping 172.20.8.77 具有 32 字节的数据:
来自 172.20.8.77 的回复: 字节=32 时间<1ms TTL=64
来自 172.20.8.77 的回复: 字节=32 时间<1ms TTL=64
来自 172.20.8.77 的回复: 字节=32 时间<1ms TTL=64
来自 172.20.8.77 的回复: 字节=32 时间<1ms TTL=64
172.20.8.77 的 Ping 统计信息:
数据包: 已发送 = 4,已接收 = 4,丢失 = 0 (0% 丢失),
往返行程的估计时间(以毫秒为单位):
最短 = 0ms,最长 = 0ms,平均 = 0ms
172.20.8.77 ping success
os.system返回的是执行状态代码(经测试返回都是0或者1),os.popen返回的是输出结果;
cmd = 'ping %s'%ip中的%s'%ip表示格式化成字符,同样%d是格式化成整数;
经测试python识别是否是同一个程序块是按缩进匹配的,如这里的while begin<78:如果后面的代码是缩进在右边,则表示跟while begin<78:是一个循环,如果和while begin<78:并行或向左缩进则表示同级。但是,如果if / else缩进位置不并行编译都过不了。