代码改变世界

Python中的r+和a+

2018-04-23 18:11  钱先生  阅读(1840)  评论(1编辑  收藏  举报

问题描述

我打算更改文件user_list2中的内容, 本来的想法是加一个temp 文件. 先把user_list2的内容读取并修改后写入temp, 之后再写回来.

但是在读取内容并修改后写入temp这一段, 就因为r+ 和a+的问题产生了困扰. 

 1 def replace(arg1):
 2       for line in user_list2.readlines():
 3             if name == line.split(',')[0]:
 4                   line = line.replace(line.split(',')[2],  arg1+'\n')
 5                   temp.write(line)
 6             else:
 7                   temp.write(line)
 8 
 9 
10 #TODO r+ /a+说是可读可写,但是下面这段代码, 如果把user_list2改成a+模式, 则文件的数据并没有读取成功. 
11 # r+, a+到底是怎么工作的
12 
13 
14 
15 user_list2 = open('user_list2', 'r+', encoding='utf-8')
16 temp = open('temp', 'a+', encoding='utf-8')
17 
18 name = input('name')
19 replace('5000')
20 
21 user_list2.close()
22 temp.close()