任务6:
with open('data6.csv','r',encoding='gbk')as f: data=list(f.readlines()) data=[i.strip('\n') for i in data ] import decimal decimal.getcontext().rounding='ROUND_HALF_UP' title=[data[0],'四舍五入后的数据'] data_new=[] data_o=[] for i in data: if not i.isalpha() is True: data_o.append(eval(i)) print('原始数据:') print(data_o) for i in data: if not i.isalpha() is True: data_new.append([i]) data_=[] for i in data: if not i.isalpha() is True: i=eval(i) if i-int(i)>=0.5: i=int(i)+1 data_new[index].append(str(i)) data_.append(i) else: i=int(i) data_new[index].append(str(i)) data_.append(i) print('四舍五入后的数据:') print(data_) import csv with open('data6_processed.csv','w',encoding='gbk',newline='') as f : f_writer=csv.writer(f) f_writer.writerow(title) f_writer.writerows(data_new)
运行结果:
任务7:
with open('data7.csv','r',encoding = 'gbk') as f: data = f.readlines() data_t = ['学号','姓名','专业','分数'] data1 = [i.strip('\n').split(',') for i in data] data1.remove(data1[0]) data2=sorted(data1,key=lambda x:(x[2],-int(x[3]))) with open('data7_processed.csv','w',encoding = 'gbk') as f: f.write(','.join(data_t) + '\n') for item in data2: f.write(','.join(item) + '\n') print(f'{"学号":10s}{"姓名":10s}{"专业":10s}{"分数":10s}') for a,b,c,d in data2: print('{:<10s}{:<10s}{:<10s}{:<10}'.format(a,b,c,d))
运行结果:
任务八:
lines = 0 words = 0 sum1 = 0 space = 0 with open('hamlet.txt','r',encoding='utf-8') as f: for line in f: word = line.split() lines += 1 words += len(word) sum1 += len(line) for i in line: if i == ' ': space += 1 else: pass print('hamlet.txt粗滤统计:') print(f'行数:{lines}') print(f'单词数:{words}') print(f'字符数:{sum1}') print(f'空格数:{space}') with open('hamlet.txt','r',encoding = 'utf-8') as f: text = f.readlines() for i in range(len(text)): text[i] = str(i+1) + ' ' + text[i] with open('hamlet_with_line_number.txt','w',encoding = 'utf-8' as f: f.writelines(text)
运行结果:
任务九:
import datetime def is_valid(x): if len(x) == 18 and x[:-1].isdigit() and (x[-1].isdigit() or x[-1] == 'X'): return True else: return False with open('data9_id.txt', 'r', encoding='utf-8') as f: data0 = f.readlines() title = data0.pop(0) data0 = [i.strip('\n').split(',') for i in data0] data1 = [] for i in data0: if is_valid(i[1]): data1.append(i) print(data1) t = datetime.datetime.now() y = t.strftime('%Y%m%d') for i in data1: age = str(int(y)-int(i[1][6:14])) i.append(age[:2]) i[1] = i[1][6:10] + '-' + i[1][10:12] + '-' + i[1][12:14] data2 = sorted(data1, key=lambda x: -int(x[2])) print('姓名, 出生日期, 年龄') for i in data2: print(', '.join(i))
运行结果:
任务10-1:
import random import datetime with open('data10_stu.txt', 'r', encoding='utf-8') as f: data = f.readlines() data0 = [i.strip('\n').split('\t') for i in data] n = eval(input('输入随机抽点人数:')) data1 = random.sample(data0, n) for i in data1: print(' '.join(i)) t = datetime.datetime.now() title = t.strftime('%Y%m%d') with open(f'{title}.txt', 'w', encoding='utf-8') as f: for i in data1: f.write(f'{i[0]}\t{i[1]:6s}\t{i[2]:10s}\n')
运行结果:
10-2:
import datetime t = datetime.datetime.now() filename = t.strftime('%Y%m%d') + '.txt' start='抽取开始' print(start.center(50,'*')) with open('data10_stu.txt', 'r', encoding='utf-8') as f: data = f.readlines() def random_selection(n): import random demo = random.sample(data, n) return demo selection=set() numbers=[] while True: n = eval(input('输入随机抽点人数:')) if n != 0: x=random_selection(n) for i in x: print(i) data.remove(i) with open(filename,'a',encoding='utf-8') as f : f.writelines(i) else: print('抽取结束'.center(50,'*')) break
运行结果:
标签:open,encoding,data1,datetime,实验,print,data From: https://www.cnblogs.com/e2718281/p/17462153.html