实验5 文件应用编程
task1
with open('data3.txt','r',encoding='utf-8') as f1: data=f1.read().split('\n') x=[eval(i) for i in data[1:]] print(f'原始数据:\n{x}') y=[round(i) for i in x] print(f'四舍五入后数据:\n{y}') with open('data3.txt','w',encoding='utf-8') as f2: m=[['原始数据']+[str(i) for i in x]] n=[['四舍五入后数据']+[str(i) for i in y]] for i in range(len(x)): f2.write(f"{m[i]}\t {n[i]}\n")
task2
with open('data4.txt','r',encoding='utf-8') as f: a=f.readlines() b=[] for i in a: b.append(i.strip('\n').split('\t')) print(a) t=b[1:] t.sort(key=lambda x:(x[2],-int(x[3]))) with open('data4_processed.txt','w',encoding='utf-8') as f: for i in b[0]: f.write(f'{i:<10}') f.write('\n') for i in t: for x in i: f.write(f'{x:<10}') f.write('\n')
task5 with open('data5.txt','r+',encoding='utf-8')as f1: inf=f1.read() line = len(inf.splitlines()) word = len(inf.split()) string = len(inf) space=0 for i in inf: if i==' ': space+=1 print(f'行数:{line}') print(f'单词数:{word}') print(f'空格数:{space}') print(f'字符数:{string}') with open('data5_with_line.txt', 'w', encoding='utf-8') as f2: for n in range(line): f2.write(str(n+1)+' '+inf.split('\n')[n]+'\n')