m0_57965808 2022-03-01 16:30 采纳率: 91.2%
浏览 32
已结题

用with open方法写入文件出现内容残缺

今天我用with open() as f 将文本内容写入文件的时候出现了文本大部分缺失的情况。真正写入文件的只有最后一段,前面的部分一点都没写入。
本应写入的:

img

实际写入的:

img


望各位有识之士不吝赐教。
PS:之后我将w模式改为了a+模式,然后就可以了。请问这是为什么呢?

  • 写回答

1条回答 默认 最新

  • 陈年椰子 2022-03-01 16:51
    关注

    如果是w 模式, 要把 with open 放到循环前面去, 不能放在循环体里。

    测试下这三种情况,看能否给你提示。

    with open("t1.txt",'w') as f:
        for i in range(1,11):
            f.write("Line{}\n".format(i))
    
    
    for i in range(1,11):
        with open("t2.txt", 'w') as f:
            f.write("Line{}\n".format(i))
    
    
    for i in range(1,11):
        with open("t3.txt", 'a') as f:
            f.write("Line{}\n".format(i))
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 3月9日
  • 已采纳回答 3月1日
  • 修改了问题 3月1日
  • 创建了问题 3月1日