Python如何创建output.dat文件并将代码结果写入而非输出到终端
实现方案
该需求完全可以实现,只需调整输出逻辑,将原本打印到终端的内容写入output.dat文件即可,修改后的代码和调整说明如下:
from random import randint import os b = {} for i in range(1000000): num = randint(1, 50) if num not in b: b[num] = 0 b[num] += 1 # 打开output.dat文件,写入结果 with open("output.dat", "w", encoding="utf-8") as f: for i in range(1, 51): # 指定print的输出目标为打开的文件对象f print(f"Number {i}, {b[i]}", file=f)
调整说明
- 移除了冗余代码:原代码中100万次循环内的
print("")会生成大量无意义空行,若你确实需要保留这些空行,可以把这行代码也移入with代码块内,加上file=f参数即可。 - 用
with上下文管理器打开文件:这种写法会在内容写入完成后自动关闭文件,不需要手动调用f.close(),避免出现文件资源占用的问题。 - 最小改动适配需求:仅在原有
print方法中新增file参数指定输出目标为打开的文件,不需要修改原有字符串拼接逻辑,示例中用到的f-string格式化写法和你原来的字符串拼接效果完全一致,也可以保留你原有的写法。 - 如果你需要同时在终端看到输出也写入文件,只需要保留原有
print语句,同时新增一行写入文件的逻辑即可:
# 同时输出到终端和写入文件示例 content = f"Number {i}, {b[i]}" print(content) print(content, file=f)
内容的提问来源于stack exchange,提问作者user17294826
相关产品推荐
相关产品推荐

