实验5 文件应用编程
task 3
1 with open ('data3.txt','r',encoding='utf-8') as f: 2 data = f.read() 3 data = data.split('\n') 4 m = ['{:20}'.format(i) if i == '原始数据' else '{:22}'.format(i) for i in data] 5 data1 = ["四舍五入后数据"] 6 for i in range(1, len(data)): 7 data[i] = int(eval(data[i])+0.5) 8 data1.append(str(data[i])) 9 for i in range(len(data)): 10 data[i] = m[i] + data1[i] + '\n' 11 with open("data3_processed.txt", 'w', encoding="utf-8") as f: 12 f.writelines(data) 13 m.pop(0) 14 print(f"原始数据:\n{[eval(i) for i in m]}\n四舍五入后数据:\n{[int(eval(i)+0.5) for i in m]}")
task 4
1 with open("data4.txt", 'r', encoding="utf-8") as f: 2 data = f.readlines() 3 list = [] 4 for i in data: 5 i = i.strip("\n") 6 list.append(i.split("\t")) 7 for i in range(1,len(list)): 8 list[i][3] = int(list[i][3]) 9 list1 = [list.pop(0)] 10 list.sort(key=lambda x: (x[2], -x[3])) 11 list2 = list1+list 12 for i in range(len(list2)): 13 m = "\t".join("%s" % i for i in list2[i]) 14 list2[i] = f"{m}\n" 15 16 with open("data4_processed.txt", "w",encoding="utf-8") as f: 17 f.writelines(list2)
task 5
1 with open("data5.txt") as f: 2 text = f.read() 3 lines = len(text.splitlines()) 4 words = len(text.split()) 5 spaces = text.count(" ") 6 str = len(list(text)) 7 print(f"行数:{lines}\n单词数:{words}\n空格数:{spaces}\n字符数:{str}") 8 line = text.splitlines() 9 text1 = '' 10 for i in range(len(line)): 11 line[i] = f"{i + 1} " + line[i]+"\n" 12 text1 += line[i] 13 with open('data5_with_line.txt', 'w') as f: 14 f.write(text1)
实验总结:
python好难,实验三、四调整格式对齐调整了好久。。。