python实战系列之ip地址排序问题(二)
#!/usr/bin/env python#-*- coding:utf8 -*-
'''
author:Happy
from: Happy云实验室
欢迎交流
'''
import sys
import os.path
def ipsort(filepath="ip.txt"):
'''
定义一个函数,用于将ip地址排序, 默认的文件路径是当前目录下的ip.txt文件,返回排序后的ip地址列表
'''
try:
ip = []
f = file(filepath,'r')
fcontext = f.readlines()
for ips in fcontext:
ips = ips.strip()
ip.append(ips)
ip.sort(lambda x,y: cmp(''.join( [ i.rjust(3, '0') for i in x.split('.')] ), ''.join( [ i.rjust(3, '0') for i in y.split('.')]))) #排序
f.close()
except Exception,msg:
print "Error:%s" % (msg)
sys.exit(1)
return ip
def main():
'''
检查脚本携带参数的情况,必须携带一个参数——文件名,并检查文件名是否存在,调用排序的函数ipsort()
'''
try:
if len(sys.argv) != 2:
print "Usage: %s %s" % (sys.argv,sys.argv)
else:
if os.path.exists(sys.argv):
filename=sys.argv
else:
print "%s is not exists!" % (sys.argv)
sys.exit(1)
ip = ipsort(filename) #执行排序函数调用
for ips in ip:
print ips
except Exception,msg:
print "\033[31mError: %s\033[0m" % (msg)
if __name__ == "__main__":
main()
页:
[1]