对host.dat进行操作

编程说明:有一个IP地址和主机名对照表文件host.dat,按如下要求编写程序:

(1)、读取这个文件,自定义字典方式,实现键盘输入IP地址,后可以查询主机名,如果输入地址错误或不存在,显示“无对应信息”,可以重复查询,输入‘end’结束查询。
(2)、这个文件中的主机名为“pc姓名”的方式,表示某人使用该IP地址,请找出所有主机名重复的项,并将它们对应的IP地址写入到result.txt的文件中。(事先不知道重复的项是什么,但知道重复项的值是唯一的。)
host.dat内容如下:
192.168.10.11/24:pc总经理
192.168.10.12/24:pc经理助理
192.168.10.13/24:pc办公室主任
192.168.10.14/24:pc销售部经理
192.168.10.15/24:pc生产部经理
192.168.10.16/24:pc软件部经理
192.168.10.17/24:pc硬件部经理
192.168.10.18/24:pc人力资源部经理
192.168.10.19/24:pc库房主任
192.168.10.20/24:pc保卫处主任
192.168.10.21/24:pc王大力
192.168.10.22/24:pc吕达
192.168.10.23/24:pc刘贺
192.168.10.24/24:pc
192.168.10.25/24:pc樊中华
192.168.10.26/24:pc刘胤伯
192.168.10.27/24:pc
192.168.10.28/24:pc白小松
192.168.10.29/24:pc臧天鹏
192.168.10.30/24:pc刘峰
192.168.10.31/24:pc张小松
192.168.10.32/24:pc金悦
192.168.10.33/24:pc
192.168.10.34/24:pc申亚奇
192.168.10.35/24:pc谢阿迪
192.168.10.36/24:pc贺飞林
192.168.10.37/24:pc何晓敏
192.168.10.38/24:pc
192.168.10.39/24:pc梁俊平
192.168.10.40/24:pc
192.168.10.41/24:pc谢平
192.168.10.42/24:pc
192.168.10.43/24:pc王玉
192.168.10.44/24:pc温丽民
192.168.10.45/24:pc梁建华
192.168.10.46/24:pc
192.168.10.47/24:pc张甜
192.168.10.48/24:pc
192.168.10.49/24:pc孟庆亮
192.168.10.50/24:pc
192.168.10.51/24:pc张志刚
192.168.10.52/24:pc贾圣涵
192.168.10.53/24:pc李朋飞
192.168.10.54/24:pc
192.168.10.55/24:pc
192.168.10.56/24:pc任娇娇
192.168.10.57/24:pc王康佳
192.168.10.58/24:pc王龙微
192.168.10.59/24:pc
192.168.10.60/24:pc

print('查找IP,并筛选重复项')
f = open('host.dat', 'r')
flist = f.readlines()
f.close()
lista = []
dict_name = {}
for i in flist:                         #字典转换
    tlist = i[:-1].split(':')
    lista.append(tlist[1])              #主机名放入列表中
    dict_name[tlist[0]]=tlist[1]

while 1:                    #进行输入查询
    n = input('请输入查询的IP地址(格式如:192.168.1.1/24):')
    if n == 'end':
        break
    for i in dict_name:
        if n == i:
            print(dict_name[i])
            break
    else:
        print('无对应信息')

list_result = []
list_values = []
for k, v in dict_name.items():         #对values进行统计相同的提取出来
    if lista.count(v) > 1 and v not in list_values:
        list_values.append(v)

f = open('result.txt', 'w')
for i in dict_name:                    #把相同主机名与其对应的IP写入到文件
    if dict_name[i] in list_values:
        list_result.append(i)
        f.write(i + ':' + dict_name[i] + '\n')
f.close()```

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值