实验6 文件应用编程-2
3.实验任务3
1 def isvalid(n): 2 if len(n)!=18: 3 return False 4 elif n.isdigit(): 5 return True 6 else: 7 if n[-1]=='X': 8 return True 9 else: 10 return False 11 with open('data3_id.txt','r',encoding='utf-8')as f: 12 data=f.readlines() 13 data.pop(0) 14 info=[line.strip('\n').split(',') for line in data] 15 info1={} 16 for i in info: 17 if isvalid(i[1]): 18 info1[i[0]]=i[1] 19 else: 20 continue 21 list1=[(b[6:14],a)for a,b in list(info1.items())] 22 list1.sort(key=lambda x:x[0]) 23 for b,a in list1: 24 print(f'{a},{b[0:4]}-{b[4:6]}-{b[6:8]}')
5.实验任务5
task5_1.py:
1 n=eval(input('输入随机抽点人数:')) 2 import datetime 3 t=datetime.datetime.now() 4 import random 5 with open('data5.txt','r+',encoding='utf-8')as f1: 6 with open(t.strftime('%Y%m%d')+'.txt', 'w+', encoding='utf-8') as f2: 7 data=f1.readlines() 8 info = [line.strip('\n')for line in data] 9 info2=random.sample(info,n) 10 for i in info2: 11 f2.write(i+'\n') 12 for j in i.split('\t'): 13 print('%-5s\t'%j,end='') 14 print()
task5_2.py:
1 print(f"{'抽点开始':=^40}") 2 import random 3 import datetime 4 t=datetime.datetime.now() 5 with open('data5.txt','r+',encoding='utf-8')as f1: 6 data = f1.readlines() 7 info = [line.strip('\n') for line in data] 8 while True: 9 n=eval(input('输入随机抽点人数:')) 10 if n==0: 11 break 12 with open(t.strftime('%Y%m%d')+ '.txt', 'a+', encoding='utf-8') as f2: 13 info2 = random.sample(info, n) 14 for i in info2: 15 f2.write(i + '\n') 16 info.remove(i) 17 for j in i.split('\t'): 18 print('%-5s\t' % j, end='') 19 print() 20 print(f"{'抽点结束':=^40}")
实验总结:
没想到已经学了那么久了,还是觉得好难。:)!!!