You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python写文件仅输出少量行无法写入全部随机数是什么原因?

问题原因及修复方案

你遇到的问题由两个错误的代码逻辑共同导致:

  • 你使用了w(覆盖写)模式打开文件:该模式打开已存在的文件时,会直接清空文件所有原有内容,再写入新内容
  • 你将打开文件的with open语句放在了while循环内部:每次写入1个随机数就会重新打开一次文件,前一次写入的内容会被直接清空,循环执行100次后,文件中仅会保留最后一次写入的随机数,以及末尾的换行符,也就是你看到的两行内容。

方案1(推荐):将文件打开逻辑移到循环外部

仅打开一次文件,连续写入所有100个随机数,IO效率更高:

import random
wrote = 0
with open('users.txt', 'w') as f:
    while True:
        if wrote == 100:
            print("writing finished!")
            break
        f.write(str(random.randint(1, 9999999999)) + '\n')
        wrote = wrote + 1

方案2(不推荐):修改文件打开模式为追加模式

如果必须每次循环单独打开文件,可以将模式改为a(追加写),写入新内容时不会清空原有内容,但频繁打开关闭文件会降低运行效率:

import random
wrote = 0
while True:
    if wrote == 100:
        print("writing finished!")
        break
    else:
        with open('users.txt', 'a') as f:
            f.write(str(random.randint(1, 9999999999)) + '\n')
        wrote = wrote + 1

内容的提问来源于stack exchange,提问作者Abolfazl Malekpour

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.27 14:54:03