案例:文件操作 读取文件分数,计算并重新写入文件

现有文件:

计算总分,运行程序后得到如下文件结果:

 

代码:

 1 file = open("baolu.txt", "r")     # 打开文件
 2 file_to_list = file.readlines()   # 将文件所有内容按行读出,以列表方式呈现。并赋值给变量
 3 file.close()                      # 关闭文件
 4 
 5 for weizhi, i in enumerate(file_to_list):                # for循环列表,赋值给i
 6     short_list = i.split()                               # 第一个循环的字符串通过split()函数按空格字符分割成列表
 7     fenshu = int(short_list[1]) + int(short_list[2]) + int(short_list[3])   # 通过索引得到三门成绩,算出总分,赋值给fenshu变量
 8     short_list.append(str(fenshu))                       # 将总分追加至列表末尾
 9     file_to_list[weizhi] = " ".join(short_list) + "\n"   # 将列表转成字符串后,再返回给之前列表位置,重新生成列表
10 
11 # 将得到的新列表重新写入文件
12 file = open("baolu.txt", "w")     # 打开文件
13 file.writelines(file_to_list)     # 列表写入文件
14 file.close()                      # 关闭文件

 

留言板:

 1 import time
 2 flag = True
 3 print('\n', '------------------欢迎来到留言板------------------', '\n')
 4 
 5 while flag:
 6     usr_say = input('(q退出)请输入您想说的话:')
 7     if usr_say == "q":
 8         break
 9     a_file = open('我想说的话.txt', 'a')
10     data = a_file.writelines([time.strftime('%Y-%m-%d %H:%M:%S', time.localtime(time.time())), '\n', usr_say, '\n', '\n'])
11     a_file.close()

 

文件“修改”:

 1 with open('test.txt', encoding='utf-8') as f,\
 2     open('test.bak', 'w', encoding='utf-8') as f2:    # 打开f文件,创建f2文件
 3     for line in f:                                    # 找到满足条件的一行
 4         if '18' in line:
 5             line = line.replace('18', '27')           # 修改该行
 6         f2.write(line)                                # 写入f2文件
 7 
 8 import os
 9 os.remove('test.txt')                # 删除文件
10 os.rename('test.bak', 'test.txt')    # 重命名文件

 

posted @ 2018-06-26 22:36  宝露  阅读(226)  评论(0)    收藏  举报