file = input("请输入文件名: ")
string = input("请输入字符串: ")
with open(file, 'w+', encoding='utf-8') as f:
for s in string:
if s == "@":
break
f.write(s)
f.seek(0)
print("写入结果:", f.read())
with open("xieyajilu.txt", 'r', encoding='utf-8') as f:
rec_name_list = ["测量时间", "左臂高压", "左臂低压", "右臂高压", "右臂低压", "心率"]
rec_list = []
for line in f.readlines():
if line == '\n':
continue
record = line.replace('\n', '').strip().split(',')
rec_list.append({rec_name_list[i]: record[i] for i in range(len(rec_name_list))})
cmp = []
rec_num = len(rec_list)
arm = ["左臂", "右臂"]
# 低压最高值
cmp.append(list(map(lambda a: max([eval(rec_list[i][a+"低压"]) for i in range(rec_num)]), arm)))
# 血压平均值
cmp.append(list(map(lambda a: sum([(eval(rec_list[i][a+"高压"])+eval(rec_list[i][a+"低压"])*2)/3 for i in range(rec_num)])/rec_num, arm)))
# 高压平均值
cmp.append(list(map(lambda a: sum([eval(rec_list[i][a+"高压"]) for i in range(rec_num)])/rec_num, arm)))
# 低压平均值
cmp.append(list(map(lambda a: sum([eval(rec_list[i][a+"低压"]) for i in range(rec_num)])/rec_num, arm)))
# 高低压差平均值
cmp.append(list(map(lambda a: sum([eval(rec_list[i][a+"高压"])-eval(rec_list[i][a+"低压"]) for i in range(rec_num)])/rec_num, arm)))
# 心率的平均值
h_rate_avg = sum([eval(rec_list[i]["心率"]) for i in range(rec_num)]) / rec_num
l_state = 0
obj = ["低压最高值", "血压平均值", "高压平均值", "低压平均值", "压差平均值"]
print('{:<15}{:<15}{:<15}'.format("对比项", "左臂", "右臂"))
for i in range(len(cmp)):
print('{:<15}{:<15}{:<15}'.format(obj[i], round(cmp[i][0], 1), round(cmp[i][1]), 1))
if cmp[i][0] > cmp[i][1]:
l_state += 1
if l_state/len(cmp) > 0.5:
print("结论:左臂血压偏高")
elif l_state/len(cmp) == 0.5:
print("结论:左臂血压与右臂血压相当")
else:
print("结论:右臂血压偏高")
print("心率的平均值", h_rate_avg)
with open("class_score.txt", 'r', encoding='utf-8') as f:
rec_name_list = ["学号", "语文成绩", "数学成绩"]
rec_list = []
print("班级成绩信息如下:")
for line in f.readlines():
if line == '\n':
continue
print(line, end='')
record = line.replace('\n', '').strip().split(' ')
rec_list.append({rec_name_list[i]: record[i] for i in range(len(rec_name_list))})
print("\n")
rec_num = len(rec_list)
chinese_avg = sum([eval(rec_list[i]["语文成绩"]) for i in range(rec_num)])/rec_num
math_avg = sum([eval(rec_list[i]["数学成绩"]) for i in range(rec_num)])/rec_num
print("全班语文成绩的平均分为{},数学成绩的平均分为{}".format(round(chinese_avg, 1), round(math_avg, 1)))
print("两门课都不及格的学生信息如下:")
for rec in rec_list:
if eval(rec["语文成绩"]) < 60 and eval(rec["数学成绩"])< 60:
print(" ".join([rec[k] for k in rec]))
print("两门课成绩的平局分在90分以上的学生信息如下:")
for rec in rec_list:
rec_avg = (eval(rec["语文成绩"])+eval(rec["数学成绩"])) / 2
if rec_avg > 90:
print(" ".join([rec[k] for k in rec]), end=' ')
print(rec_avg)
import shutil
import os
input_file = input("请输入要拷贝的文本文件:")
input_filename = os.path.basename(input_file)
output_path = input("请输入拷贝的目标路径:")
output_file = os.path.join(output_path, input_filename)
try:
shutil.copyfile(input_file, output_file)
print("写入成功")
except:
print("写入失败")
import os
directory = os.listdir(r"D:\OS_Test")
print("文件夹中的文件有", " ".join(directory))
for f in directory:
ext = os.path.splitext(f)[1]
if ext == ".txt":
os.remove(os.path.join(r"D:\OS_Test", f))
print("删除文件:", f)
虽说本周题型针对的是文件的操作,但是感觉难度主要还是在于文件内容的处理。文件处理的操作相对来说还是比较简单的,对于文件的各种操作,以我目前的经历以及水平来说,使用到的次数不是很多,但是个人认为很多操作都是可以简单地理解并掌握的。此次作业的题目解法相对较多,而我在解题过程中,大都力求的是以容易理解的代码来解答,虽说用到一些平时用得较少也不太擅长用的方法,但是这确实是从了解到掌握的必经过程。