# 名称: python-workspace
# 日期: 2020/12/27
# 用户: DELL
import random, math, string
"""
文件相关的练习
"""
# 1. 创建文件data.txt,从1-100顺序打印,共100行
with open('data.txt', 'w') as src_write:
for i in range(1, 101):
# print(f'i:{i}')
src_write.writelines(f'{str(i)}\n')
# 创建文件data1.txt,共100行,每行存放一个1~100之间的整数
with open('data1.txt', 'w') as src_write:
for i in range(1, 101):
# (int(random.random()*100))
# print(math.ceil(random.random() * 100))
# print(random.randint(1, 100))
src_write.writelines(f'{random.randint(1, 100)}\n')
"""
3. 生成100个MAC地址并写入data2.txt文件中,MAC地址前6位(16进制)为01-AF-3B
-xx
01-AF-3B-xx
-xx
01-AF-3B-xx-xx
-xx
01-AF-3B-xx-xx-xx
"""
# 生成一个mac地址
def getOneMac():
mac = '01-AF-38'
mac_str = ''
for i in range(1, 4):
# print(string.hexdigits):打印16进制数
# n = random.sample(string.hexdigits, 2) # 返回一个列表
# print(''.join(n).upper())
mac_str += '-' + ''.join(random.sample(string.hexdigits, 2)).upper()
return mac + mac_str
with open('data2.txt', 'w') as src_write:
for i in range(1, 101):
src_write.writelines(f"{i}. " + getOneMac() + "\n")
"""
生成一个大文件ips.txt,要求1200行,每行随机为172.25.254.0/24段的ip
读取ips.txt文件统计这个文件中ip出现频率排前10的ip
"""
with open('ips.txt', 'w') as src_write:
# 获取到100个ip
random_num = ['172.25.254.' + str(random.randint(1, 255)) for i in range(1, 101)]
# ip为key,重复的个数为value形成字典
ips_dicts = {'{}'.format(i): random_num.count(i) for i in random_num}
# 对字典中value进行降序排序,返回集合元组,注意如果是为key排序则key=lambda b: b[0]
ips_lis = sorted(ips_dicts.items(), key=lambda b: b[1], reverse=True)
for i in ips_lis:
# 打印集合中元组的每一项
print('IP:{0} 总数:{1}'.format(i[0], i[1]))
# 写入到文件中
src_write.writelines('IP:{0} 总数:{1}\n'.format(i[0], i[1]))
Python中文件相关的练习题(包含集合字典的常用操作方法)
最新推荐文章于 2023-05-05 19:09:48 发布