实验6 文件应用编程-2
一、实验任务
1.实验任务3
task3.py:
1 def is_valid(ID): 2 ID=str(ID) 3 if len(str(ID))!=18: 4 return False 5 elif ID[0:17].isdigit() and (ID[17].isdigit() or ID[17]=='X'): 6 return True 7 return False 8 with open ("D:\桌面\实验6数据文件\data3_id.txt",'r',encoding='utf-8')as f1: 9 a=f1.readlines() 10 a.pop(0) 11 b=[i.strip('\n').split(',')for i in a] 12 c=[i[1] for i in b] 13 e=[] 14 for i in c: 15 n=is_valid(i) 16 if n==True: 17 m=c.index(i) 18 e.append(b[m]) 19 for i in e: 20 y=sorted(e,key=lambda i:i[1][6:14]) 21 for j in y: 22 print(f'{j[0]},{j[1][6:10]}-{j[1][10:12]}-{j[1][12:14]}')
运行截图:
2.实验任务5
task5_1.py:
1 import random 2 import datetime 3 num=input('输入随机抽点人数:') 4 with open("D:\桌面\实验6数据文件\data5.txt",'r',encoding='utf-8')as f1: 5 a=f1.readlines() 6 b=[i.strip('\n')for i in a] 7 sam=random.sample(b,int(num)) 8 time=datetime.datetime.now() 9 name=time.strftime('%Y%m%d') + '.txt' 10 for i in sam: 11 print(i) 12 with open(f'{name}','w',encoding='utf-8')as f2: 13 for i in sam: 14 f2.write(i+'\n')
运行截图:
task5_2.py:
1 import random 2 import datetime 3 with open("D:\桌面\实验6数据文件\data5.txt",'r',encoding='utf-8')as f1: 4 a=f1.readlines() 5 b=[i.strip('\n')for i in a] 6 time=datetime.datetime.now() 7 name=time.strftime('%Y%m%d') + '.txt' 8 c=[] 9 while True: 10 num=int(input('输入随机抽点人数:')) 11 if num!=0: 12 sam=random.sample(b,int(num)) 13 for i in sam: 14 print(i) 15 c.append(i) 16 else: 17 break 18 d=set() 19 d.update(c) 20 with open(f'{name}','w',encoding='utf-8')as f2: 21 for i in d: 22 f2.write(i+'\n')
运行截图:
二、实验总结
通过本次实验,我对Python内置的文件读写基础操作(打开/关闭、读、写、遍历)更加熟练了,也对 CSV格式文件读写基础操作有所熟悉,更加巩固了字符串、列表、字典等组合数据类型常用操作。