Python中如何将计算结果的print输出写入文本文件?
解决房租涨幅计算结果写入文件的问题
你之前的写法错误在于直接把print函数放进f.write()里,print是用来输出到控制台的函数,本身不会返回你要的计算结果,所以写入文件的只是函数对象的描述,不是实际内容。
下面给你两种可行的修改方案:
方案一:循环中同时打印并写入文件
这种方法在每次计算后,先生成要输出的字符串,同时输出到控制台和写入文件:
with open("uitvoer.txt", "w") as f: huur = int(input("Hoeveel bedraagt de huur per jaar? ")) percentage = int(input("Percentage verhoging elk jaar: "))/100 tijd = int(input("Hoeveel jaar wordt de opslagruimte gehuurd? ")) x = 0 while x < tijd: huur += huur * percentage x += 1 # 生成要输出的字符串 output_line = f"Kosten huur jaar {x}: {huur}" # 打印到控制台 print(output_line) # 写入文件,加换行符保证每行内容分开 f.write(output_line + "\n")
方案二:先收集所有结果,再一次性写入文件
如果数据量较大,这种方法更高效,先把所有结果存到列表里,最后统一写入:
# 初始化列表存储结果 results = [] huur = int(input("Hoeveel bedraagt de huur per jaar? ")) percentage = int(input("Percentage verhoging elk jaar: "))/100 tijd = int(input("Hoeveel jaar wordt de opslagruimte gehuurd? ")) x = 0 while x < tijd: huur += huur * percentage x += 1 output_line = f"Kosten huur jaar {x}: {huur}" print(output_line) results.append(output_line) # 一次性写入所有结果 with open("uitvoer.txt", "w") as f: # 用换行符连接列表中的所有字符串 f.write("\n".join(results))
两种方案都能实现把控制台打印的内容同步写入uitvoer.txt文件,你可以根据需求选择。
内容的提问来源于stack exchange,提问作者Pita
相关产品推荐
相关产品推荐

