文件应用编程
task6
1 import csv 2 title = [] 3 info = [] 4 5 with open('data6.csv','r',encoding='gbk') as f: 6 f_reader = csv.reader(f) 7 for line in f_reader: 8 info.append(line) 9 x = info.pop(0) 10 title.append(x) 11 title[0].append('四舍五入后数据') 12 for i in info: 13 mypoia = int(float(i[0])+0.5) 14 i.append(str(mypoia)) 15 16 with open('data6_processed.csv','w',encoding='gbk',newline = '') as f: 17 f_writer = csv.writer(f) 18 f_writer.writerow(title[0]) 19 f_writer.writerows(info) 20 21 print(title[0][0] + ':') 22 o = [] 23 for i in info: 24 o.append(i[0]) 25 print(o) 26 print(title[0][1] + ':') 27 p = [] 28 for i in info: 29 p.append(i[1]) 30 print(p)import csv 31 title = [] 32 info = [] 33 34 with open('data6.csv','r',encoding='gbk') as f: 35 f_reader = csv.reader(f) 36 for line in f_reader: 37 info.append(line) 38 x = info.pop(0) 39 title.append(x) 40 title[0].append('四舍五入后数据') 41 for i in info: 42 mypoia = int(float(i[0])+0.5) 43 i.append(str(mypoia)) 44 45 with open('data6_processed.csv','w',encoding='gbk',newline = '') as f: 46 f_writer = csv.writer(f) 47 f_writer.writerow(title[0]) 48 f_writer.writerows(info) 49 50 print(title[0][0] + ':') 51 o = [] 52 for i in info: 53 o.append(i[0]) 54 print(o) 55 print(title[0][1] + ':') 56 p = [] 57 for i in info: 58 p.append(i[1]) 59 print(p)
结果:


task7
1 import csv 2 3 title = [] 4 info = [] 5 6 with open('data7.csv','r',encoding = 'gbk') as f: 7 f_reader = csv.reader(f) 8 for line in f_reader: 9 info.append(line) 10 x = info.pop(0) 11 title.append(x) 12 13 info.sort(key = lambda x : (x[2],-int(x[3]))) 14 15 16 with open('data7_processed.csv','w',encoding = 'gbk',newline='') as f: 17 f_writer = csv.writer(f) 18 f_writer.writerow(title[0]) 19 f_writer.writerows(info) 20 for i in title[0]: 21 print('%-10s'%i, end= '') 22 print() 23 for i in info: 24 for x in i: 25 print('%-10s'%x,end= '') 26 print()
结果:


task8
1 with open('hamlet.txt','r',encoding= 'utf-8') as f: 2 text = f.readlines() 3 lin = 0 4 for line in text: 5 lin += 1 6 words = [] 7 for i in text: 8 if not i.isspace(): 9 words.append(i) 10 words_c = 0 11 import re 12 for i in words: 13 i = re.split(' |\n|\t|:|,|;',i) 14 for word in i: 15 if word.isalpha(): 16 words_c += 1 17 characters = 0 18 for i in text: 19 for character in i: 20 characters += 1 21 blanks = 0 22 for i in text: 23 for blank in i: 24 if blank == ' ': 25 blanks += 1 26 print('hamlet.txt粗略统计:') 27 print(f'行数:{lin}') 28 print(f'单词数:{words_c}') 29 print(f'字符数:{characters}') 30 print(f'空格数:{blanks}') 31 32 33 lines = [] 34 for number, line in enumerate(text, 1): 35 lines.append(f'{number}{line}') 36 with open('hamlet_with_line_number.txt','w',encoding='utf-8') as f: 37 for line in lines: 38 f.write(line)
结果:


task9
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))
结果:

task10_1
1 with open('data10_stu.txt','r',encoding='utf-8') as f: 2 data = f.readlines() 3 print('{:*^40}'.format('抽点开始')) 4 n = int(input('输入随机抽点人数:')) 5 import random 6 sum1 = 0 7 x = [] 8 x2 = '' 9 counts = 0 10 while counts < n: 11 new = random.randint(0, len(data) - 1) 12 if new in x: 13 new = random.randint(0, len(data) - 1) 14 else: 15 counts +=1 16 x.append(new) 17 for i in range(n): 18 print(data[x[i]]) 19 x2 += data[x[i]] 20 sum1 += n 21 with open('20230602.txt','w',encoding='utf-8') as f: 22 f.writelines(x2)
结果:

task10_2
1 with open('data10_stu.txt','r',encoding='utf-8') as f: 2 data = f.readlines() 3 print('{:*^40}'.format('抽点开始')) 4 lst1 = [] 5 x = [] 6 while True: 7 n = int(input('输入随机抽点人数:')) 8 if n == 0: 9 print('{:*^40}'.format('抽点结束')) 10 break 11 else: 12 x = [] 13 import random 14 while len(x) < n: 15 t = random.randint(0, len(data)-1) 16 if (str(t) not in lst1) and (str(t) not in x): 17 x.append(t) 18 lst1.append(t) 19 20 lst = [] 21 for i in x: 22 print(data[i],end = '\n') 23 lst.append(data[i]) 24 25 import datetime 26 t = datetime.datetime.now() 27 y = t.strftime('%Y%m%d') 28 with open(f'{y}.txt','w',encoding='utf-8') as f: 29 f.writelines(lst)
结果:

浙公网安备 33010602011771号