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

游戏分数写入文本文件失败求助:文件无内容输出

解决方案:分数写入文本文件为空的问题

我来帮你排查并解决这个问题!虽然你提到变量计算完成、缩进正确,但文件为空通常和文件流未正确刷新/关闭,或是代码分支未触发有关,咱们一步步来梳理:

可能的问题根源

  • 手动调用f.close()本身没问题,但如果程序在执行到close()前意外中断(比如隐性报错),就会导致内容没能写入文件
  • 虽然你认为分支条件满足,但可以加个调试输出,确认代码是否真的进入了if或elif块

修正后的可靠代码

推荐用Python的with语句管理文件,它会自动处理文件的打开和关闭,哪怕中间出异常也能保证内容写入:

# 先加调试输出,确认分数值和分支触发情况
print(f"Player1 score: {total_player1}, Player2 score: {total_player2}")

# 先统一处理赢家信息,让逻辑更清晰
if total_player1 > total_player2:
    winner_name = str(auth_user1)
    winner_score = str(total_player1)
elif total_player2 > total_player1:
    winner_name = str(auth_user2)
    winner_score = str(total_player2)
else:
    # 别忘了处理平局场景,避免代码完全不执行写入
    winner_name = "No one (it's a tie!)"
    winner_score = "equal scores"

# 用with语句自动管理文件资源,无需手动close
with open("mydatafilescores.txt", "w") as f:
    # 用f-string拼接完整句子,可读性更好,也避免内容连在一起
    f.write(f"The winner of the match was {winner_name} with an outstanding score of {winner_score}")

print("\nGood Game. Game is over!")

额外排查建议

  1. 确认文件路径:程序运行的当前目录可能不是你预期的位置,用import os; print(os.getcwd())打印当前路径,看看文件是不是创建在了其他地方
  2. 添加错误捕获:如果担心写入时出现权限问题,可加异常捕获块排查:
try:
    with open("mydatafilescores.txt", "w") as f:
        f.write(f"The winner of the match was {winner_name} with an outstanding score of {winner_score}")
except Exception as e:
    print(f"Error writing to file: {e}")

这样修改后,应该就能保证内容正确写入文件啦!

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.13 06:31:56