234十
2019-03-01 10:43
采纳率: 81.8%
浏览 1.4k
已采纳

python使用循环把input输入的内容添加到文件时,为什么只添加了最后一次输入的内容

for i in range(2):
a=input('请输入名字:')
b=r'C:\Users\v_pejiepeng\Desktop\be.txt'
with open(b,'w')as c:
c.write(a)
d=open(r'C:\Users\v_pejiepeng\Desktop\be.txt')
print (d)
代码如上,进行过代码调试,循环两次。第一次a是一个值。然后将a加入c这个代码也执行完了。然后再返回的for,进行第二次的循环。可最后结果却只加入了第二次输入的值。求解。
for i in range(2):
a=input('请输入名字:')
b=r'C:\Users\v_pejiepeng\Desktop\be.txt'
with open(b,'w')as c:
c.write(a)
d=open(r'C:\Users\v_pejiepeng\Desktop\be.txt')
print (d)
第二次的代码和第一次的代码,调试时,代码的执行顺序是不一样的。我也知道这种代码的写也是不正确的。可为什么第一次的代码没能把第一次输入的数据写入到文件中。

b=r'C:\Users\v_pejiepeng\Desktop\be.txt'
with open(b,'w')as c:
for a in range(2):
c.write(a)
d=open(r'C:\Users\v_pejiepeng\Desktop\be.txt')
print (d)
代码这样样写是没错。可以将两次的内容都写入到文件中。本人现在的疑问就是代码一为什么没有把第一次输入的数据写入到文件中。

  • 写回答
  • 好问题 提建议
  • 关注问题
  • 收藏
  • 邀请回答

1条回答 默认 最新

  • Ice_bling 2019-03-01 11:49
    已采纳

    w是以覆盖的形式写入文件,而不是文末追加的形式,具体参考

    'r':读
    
    'w':写
    
    'a':追加
    
    'r+' == r+w(可读可写,文件若不存在就报错(IOError))
    
    'w+' == w+r(可读可写,文件若不存在就创建)
    
    'a+' ==a+r(可追加可写,文件若不存在就创建)
    
    对应的,如果是二进制文件,就都加一个b就好啦:
    
    'rb'  'wb'  'ab'  'rb+'  'wb+'  'ab+'
    

    所以你改成
    with open(b,'a+')as c: 就好了

    已采纳该答案
    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题