实验5 文件应用编程
task6.py
实验源码:
1 with open(r'C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\data6.csv','r', 2 encoding='gbk') as f: 3 data=f.readlines() 4 5 data.remove('原始数据\n') 6 data0=[] 7 for i in data: 8 if i[-1]=='\n': 9 i=i[:-1] 10 data0.append(float(i)) 11 print('原始数据:') 12 print(data0) 13 14 data1=[int(i+0.5) for i in data0] 15 print('四舍五入后数据:') 16 print(data1) 17 18 with open(r'C:\Users\28678\Downloads\实验5数据文件\data6_processed.csv','w', 19 encoding='gbk') as f: 20 f.write('原始数据,四舍五入后数据\n') 21 for i in range(len(data1)): 22 f.write(str(data0[i])+','+str(data1[i])+'\n')
运行结果:


task7.py
实验源码:
with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\data7.csv",'r', encoding='gbk') as f: data=f.readlines() data0=[i.strip('\n').split(',') for i in data] data0.remove(data0[0]) data1=sorted(data0,key=lambda x:(x[2],-int(x[3]))) print(f'{"学号":10s}{"姓名":10s}{"专业":10s}{"分数":10s}') for h,i,j,k in data1: print(f'{h:10s}{i:10s}{j:10s}{k:10s}') with open(r'C:\Users\28678\Downloads\实验5数据文件\data7_processed.csv','w', encoding='gbk') as f: f.write('学号,姓名,专业,分数\n') for i in range(len(data1)): f.write(','.join(data1[i])+'\n')
运行结果:


task8.py
实验源码:
with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\hamlet.txt",'r') as f: data=f.read() print('hamlet.txt粗略统计:') print(f'行数:{len(data.splitlines())}') print(f'单词数:{len(data.split())}') print(f'字符数:{len(data)}') print(f'空格数:{data.count(" ")}') data1=data.splitlines() data2=[] for i in range(len(data1)): data2.append(f'{i+1} '+data1[i]+'\n') with open(r'C:\Users\28678\Downloads\实验5数据文件\hamlet_with_line_number.txt', 'w') as f: f.writelines(data2)
运行结果:

task9.py
实验源码:
def is_valid(id): if len(id)==18 and id[:-1].isdigit() and (id[-1].isdigit() or id[-1]=='X'): return True else: return False with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\data9_id.txt",'r') as f: data=f.readlines() data.remove(data[0]) data0=[i.strip('\n').split(',') for i in data] data1=[] for i in data0: if is_valid(i[1])==True: i[1]=i[1][6:14] data1.append(i) import datetime t=datetime.datetime.now() y=t.strftime('%Y%m%d') for i in data1: i.append(str(int(y)-int(i[1][0:8]))) data2=sorted(data1,key=lambda x:-int(x[2])) print('姓名, 出生日期, 年龄') for i in data2: i[1]=i[1][0:4]+'-'+i[1][4:6]+'-'+i[1][6:8] i[2]=i[2][0:2] print(', '.join(i))
实验结果:

task10-1.py
实验源码:
with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\data10_stu.txt",'r') as f: data=f.readlines() data0=[i.strip('\n').split('\t') for i in data] import random n=eval(input('输入随机抽点人数:')) data1=random.sample(data0,n) for i in data1: print(' '.join(i)) import datetime t=datetime.datetime.now() fn=t.strftime('%Y%m%d') with open(r'C:\Users\28678\Downloads\实验5数据文件\{}.txt'.format(fn),'w') as f: for i in data1: i[0]+='\t' i[1]+='\t' i[2]+='\n' f.writelines(i)
实验结果:

task10_2.py
1 open('name.txt',encoding='gb18030',errors='ignore') 2 with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\data10_stu.txt",'r') as f: 3 data=f.readlines() 4 5 data0=[i.strip('\n').split('\t') for i in data] 6 7 import datetime 8 t=datetime.datetime.now() 9 fn=t.strftime('%Y%m%d') 10 11 import random 12 print(f'{"抽点开始":*^32s}') 13 n=eval(input('输入随机抽点人数:')) 14 a=0 15 while n!=0: 16 data1=random.sample(data0,n) 17 a+=1 18 for i in data1: 19 print(' '.join(i)) 20 data0.remove(i) 21 if a==1: 22 with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\{}.txt",'w') as f: 23 for i in data1: 24 i[0]+='\t' 25 i[1]+='\t' 26 i[2]+='\n' 27 f.writelines(i) 28 else: 29 with open(r"C:\Users\scy20030602\OneDrive\文档\Tencent Files\2420994345\FileRecv\实验5数据文件\实验5数据文件\{}.txt".format(fn),'a') as f: 30 for i in data1: 31 i[0]+='\t' 32 i[1]+='\t' 33 i[2]+='\n' 34 f.writelines(i) 35 n=eval(input('输入随机抽点人数:')) 36 print(f'{"抽点结束":*^32s}')
运行结果:

通过本次实验学习,知道了如何在代码中表示文件路径,以及各种函数的使用方法,在以后的学习中也要多加练习。

浙公网安备 33010602011771号