实验6 文件应用编程-2

#实验任务三
def is_valid(id):
    if len(id) != 18:
        return False
    try:
      for i in id:
        if i == 'X':
            continue
        elif type(eval(i)) == int:
            continue
        else: return False
    except:return False
    return True


import csv

a = []
with open('data3_id.txt', 'r', encoding='utf-8') as f:
    f_reader = csv.DictReader(f)
    for line in f_reader:
        x = line.get('身份证号码')
        if is_valid(x) == False:
            continue
        else:
            line['身份证号码']=line['身份证号码'][6:10]+'-'+line['身份证号码'][10:12]+'-'+line['身份证号码'][12:14]
            a.append(line)
    b = sorted(a, key=lambda i: i['身份证号码'])
    for a in b:
        print(f"{a['姓名']},{a['身份证号码']}")

 

#实验任务5_1
import random
import datetime

b = []
with open('data6.txt', 'r', encoding='utf-8') as f:
    data = f.read().strip('\n')
    a = data.split('\n')
    for i in a:
        b.append(i.split('\t'))
    x = random.sample(b, eval(input('输入随机抽点个数:')))

    t = datetime.datetime.now()
    with open(t.strftime('%Y%m%d') + '.txt', 'w', encoding='utf-8') as f:
        for i in x:
            f.write('\t'.join(i))
            f.write('\n')
            print('\t'.join(i))

 

#实验任务5_2
import random
import datetime

b = []
with open('data6.txt', 'r', encoding='utf-8') as f:
    data = f.read().strip('\n')
    a = data.split('\n')
    for i in a:
        b.append(i.split('\t'))


    t = datetime.datetime.now()
    with open(t.strftime('%Y%m%d') + '.txt', 'a', encoding='utf-8') as f:
        print("{:=^30}".format('抽点开始'))
        y = 1
        while y != 0:
            y = eval(input('输入随机抽点个数:'))
            x = random.sample(b, y)
            for i in x:
                b.remove(i)
                f.write('\t'.join(i))
                f.write('\n')
                print('\t'.join(i))
        print("{:=^30}".format('抽点结束'))

 

posted @ 2022-05-18 19:41  邵佳佳202183360014  阅读(57)  评论(2编辑  收藏  举报