python文件操作练习题

京东编程题
1.生成一个大文件ips.txt,要求1200行,每行随机为172.25.254.0/24段的ip;
2.读取ips.txt文件统计这个文件中ip出现频率排前10的ip;

import random

def create_ip_file(filename):
    ip=['172.25.254.'+str(i) for i in range(1,255)]
    # print(ip)
    with open(filename,'a+') as f:
        for count in range(1200):
            f.write(random.sample(ip,1)[0]+'\n')

def sorted_ip(filename,count=10):
    ip_dict=dict()
    with open(filename) as f:
        for ip in f:
        	ip=ip.strip()
            if ip in ip_dict:
                ip_dict[ip]+=1
            else:
                ip_dict[ip]=1

    #返回一个列表,列表里每一组以元组的形式存放
    ip_sorted=sorted(ip_dict.items(),key=lambda x:x[1],reverse=True)
    return ip_sorted

def main(filename):
    f=filename
    create_ip_file(f)
    print(sorted_ip(f))

main('ip.txt')

在这里插入图片描述

你可能感兴趣的:(python文件操作练习题)