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

Python 3运行时无法写入并读取.txt文件问题求助

问题解决:程序运行时无法实时看到写入的PIN码内容

你的问题根源在于Python文件操作的缓冲机制:默认情况下,写入文件的数据会先暂存到内存缓冲区,只有当缓冲区填满、文件被手动关闭,或者程序运行结束时,才会真正写入磁盘,导致你在程序运行期间看不到文件内容。

解决方案1:强制刷新缓冲区

在写入内容后,调用flush()方法强制将缓冲区的数据写入磁盘:

import secrets
import string
from time import sleep

letters = string.ascii_letters
digits = string.digits
alphabet = letters + digits
pwd_length = 7

# 生成符合约束的PIN码
while True:
    pwd = ''.join(secrets.choice(alphabet) for _ in range(pwd_length))
    if any(char in letters for char in pwd) and sum(char in digits for char in pwd) >= 3:
        break

f = open("Random Entry Code.txt","w+")
for i in range(1):
    f.write(pwd + "%d\r\n" % (i+1))
# 强制刷新缓冲区,立即写入磁盘
f.flush()
sleep(10)
# 手动关闭文件
f.close()

解决方案2:使用with语句(推荐)

with语句会自动管理文件资源,在代码块结束时自动刷新缓冲区并关闭文件,即使中途出现错误也能保证文件正确处理:

import secrets
import string
from time import sleep

letters = string.ascii_letters
digits = string.digits
alphabet = letters + digits
pwd_length = 7

# 生成符合约束的PIN码
while True:
    pwd = ''.join(secrets.choice(alphabet) for _ in range(pwd_length))
    if any(char in letters for char in pwd) and sum(char in digits for char in pwd) >= 3:
        break

# 使用with语句打开文件,自动处理刷新和关闭
with open("Random Entry Code.txt","w+") as f:
    for i in range(1):
        f.write(pwd + "%d\r\n" % (i+1))
    # 可选:手动flush确保立即写入
    f.flush()
    sleep(10)

注:顺便优化了PIN码生成的代码,用join替代循环拼接,更简洁高效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 20:20:29