234十 2019-03-01 10:43 采纳率: 100%
浏览 1487
已采纳

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: 就好了

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥60 版本过低apk如何修改可以兼容新的安卓系统
  • ¥25 由IPR导致的DRIVER_POWER_STATE_FAILURE蓝屏
  • ¥50 有数据,怎么建立模型求影响全要素生产率的因素
  • ¥50 有数据,怎么用matlab求全要素生产率
  • ¥15 TI的insta-spin例程
  • ¥15 完成下列问题完成下列问题
  • ¥15 C#算法问题, 不知道怎么处理这个数据的转换
  • ¥15 YoloV5 第三方库的版本对照问题
  • ¥15 请完成下列相关问题!
  • ¥15 drone 推送镜像时候 purge: true 推送完毕后没有删除对应的镜像,手动拷贝到服务器执行结果正确在样才能让指令自动执行成功删除对应镜像,如何解决?