python——文件练习,遍历指定目录,生成MAC地址

京东二面笔试题

  1. 生成一个大文件ips.txt,要求1200行 每行随机为172.25.254.0/24段的ip;
  2. 读取ips.txt文件统计这个文件中ip出现频率排前10的ip;
实现第一部分:
import random

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


实现第二部分:
def sorted_by_ip(filename,count=10):
    ips_dict = dict()
    with open(filename) as f:
        for ip in f:
            ip = ip.strip()
            if ip in ips_dict:
                ips_dict[ip] += 1
            else:
                ips_dict[ip] = 1
    sorted_ip = sorted(ips_dict.items(),key=lambda x:x[1],reverse=True)[:count]

    return sorted_ip

print(sorted_by_ip('ips.txt'))

python——文件练习,遍历指定目录,生成MAC地址_第1张图片
python——文件练习,遍历指定目录,生成MAC地址_第2张图片
python——文件练习,遍历指定目录,生成MAC地址_第3张图片

文件练习:

  1. 在当前目录新建目录img, 里面包含100个文件, 100个文件名 各不相同(X4G5.png)
  2. 将当前img目录所有以.png结尾的后缀名改为.jpg.
实现第一部分:
import random
import string
import os
from os.path import splitext

def gen_code(len=4):
    #随机生成4位验证码
    li = random.sample(string.ascii_letters+string.digits,len)
    #拼接为字符串
    return ''.join(li)

def create_files():
    #随机生成100个验证码
    li = [gen_code() for i in range(100)]
    os.mkdir('img')
    for i in li:
        os.mknod('img/' + i + '.png')

create_files()

python——文件练习,遍历指定目录,生成MAC地址_第4张图片

实现第二部分:
def modify_suffix(dirname,old_suffix,new_suffix):
    #找出以png结尾的文件名
    # pngfile = [filename for filename in os.listdir(dirname) if filename.endswith(old_suffix)]
    pngfile = filter(lambda filename:filename.endswith(old_suffix),os.listdir(dirname))

    #分离文件名和后缀
    basefiles = [os.path.splitext(filename)[0] for filename in pngfile]

    #文件重命名
    for filename in basefiles:
        # print(filename)
        oldname = os.path.join(dirname,filename + old_suffix)
        newname = os.path.join(dirname,filename + new_suffix)
        os.rename(oldname,newname)
        print('%s重命名为%s成功' %(oldname,newname))

modify_suffix('img','.png','.jpg')

python——文件练习,遍历指定目录,生成MAC地址_第5张图片
python——文件练习,遍历指定目录,生成MAC地址_第6张图片python——文件练习,遍历指定目录,生成MAC地址_第7张图片

遍历指定目录

import os
from os.path import join

for root,dir,files in os.walk('/var/log'):
    print(root)   #当前目录的名称
    print(dir)      #以列表显示出来,无二级目录,【】表示空目录。   
    print(files)     #当前目录下的目录里的文件  
    for name in files:    #把目录和文件名拼接起来
        print(join(root,name))

python——文件练习,遍历指定目录,生成MAC地址_第8张图片

生成MAC地址

生成100个MAC地址并写入文件中,MAC地址前6位(16进制)为01-AF-3B
01-AF-3B
01-AF-3B-xx
01-AF-3B-xx-xx
01-AF-3B-xx-xx-xx

import random
import string

#随机生成一个mac地址
def create_mac():
    MAC = '01-AF-3B'
    hex_num = string.hexdigits
    for i in range(3):
        n = random.sample(hex_num,2)
        sn = '-' + ''.join(n).upper()
        MAC += sn
    return MAC

# print(create_mac())

#随机生成100个MAC 地址
def main():
    with open('mac.txt','w') as f:
        for i in range(100):
            mac = create_mac()
            print(mac)
            #每生成一个MAC地址,存入文件
            f.write(mac + '\n')

main()

图漏掉了!!!!!!后面补上

你可能感兴趣的:(python)