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

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

报告相同问题?

悬赏问题

  • ¥20 关于#硬件工程#的问题,请各位专家解答!
  • ¥15 关于#matlab#的问题:期望的系统闭环传递函数为G(s)=wn^2/s^2+2¢wn+wn^2阻尼系数¢=0.707,使系统具有较小的超调量
  • ¥15 FLUENT如何实现在堆积颗粒的上表面加载高斯热源
  • ¥30 截图中的mathematics程序转换成matlab
  • ¥15 动力学代码报错,维度不匹配
  • ¥15 Power query添加列问题
  • ¥50 Kubernetes&Fission&Eleasticsearch
  • ¥15 報錯:Person is not mapped,如何解決?
  • ¥15 c++头文件不能识别CDialog
  • ¥15 Excel发现不可读取的内容