实验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}")

实验总结:

没想到已经学了那么久了,还是觉得好难。:)!!!

 

posted @ 2022-05-21 13:40  气工一班刘璇  阅读(34)  评论(2编辑  收藏  举报