实验6
任务3
def is_valid(s): if len(s)!=18: return 'False' for i in s: if i.isdigit(): continue elif i.isalpha(): if i!='X': return 'False' break else: return 'False' break else: return 'True' data,data_new,sfz,sfz_new,s,p=[],[],[],[],[],[] with open('data3_id.txt','r',encoding='utf-8') as f: for line in f: data.append(line.strip('\n').split(',')) sfz.append(line.strip('\n').split(',')[1]) del data[0],sfz[0] for i in range(len(sfz)): if is_valid(sfz[i])=='True': data_new.append(data[i]) sfz_new.append(sfz[i]) for i in range(len(sfz_new)): a=data_new[i][0]+','+sfz_new[i][6:10]+'-'+sfz_new[i][10:12]+'-'+sfz_new[i][12:14] s.append(a) def second(x): return int(x[3:7]) s=sorted(s,key=second) for i in s: print(i)
任务5
task5_1
with open('data5.txt','r',encoding='utf-8') as f: data=f.readlines() s,l=set(),[] r=eval(input('输入随机抽点人数: ')) import random while True: x=random.randint(1,80) s.add(x) if len(s)==r: break for i in s: l.append(data[i]) import datetime t=datetime.datetime.now() filename=t.strftime('%Y%m%d') with open(filename+'.txt','w',encoding='utf-8') as f1: f1.writelines(l) for line in l: print(line,end='')
task5_2
with open('data5.txt','r',encoding='utf-8') as f: data=f.readlines() a,b='抽点开始','抽点结束' s_all=set() print(f'{a:=^40}') while True: s,l=set(),[] r=eval(input('输入随机抽点人数: ')) if r==0: print(f'{b:=^40}') break else: import random while True: x=random.randint(1,80) if x not in s_all: s.add(x) s_all.add(x) else: continue if len(s)==r: break for i in s: l.append(data[i]) import datetime t=datetime.datetime.now() filename=t.strftime('%Y%m%d') with open(filename+'.txt','a',encoding='utf-8') as f1: f1.writelines(l) for line in l: print(line,end='')
实验总结:
1.学会了random库、time库的使用
2.排序还可以通过定义关键字进行排序
3.复习了集合,加深了对文件的理解