Python中如何将特定打印结果追加保存至文本文件?
正确实现方案
方法一:用Python内置文件操作(推荐)
直接修正with open的写法,核心是用追加模式而非覆盖模式,同时修复语法错误:
# 修正条件判断与写入逻辑 if to != '0x' and from_addr != '0x': # 原条件语法错误,需分别判断两个变量 output_line = f"To: {to} From: {from_addr}" print(output_line) # 控制台打印 with open("output.txt", "a", encoding="utf-8") as text_file: text_file.write(output_line + "\n") # 追加内容并换行
关键修正点:
- 打开模式从
"w"改"a":"w"会清空原有内容,"a"是在文件末尾追加 - 修复f-string语法:原代码的
f"To:" "From:" {to} {from_addr}写法错误,需把变量嵌入同一个f-string - 条件判断修正:原
if to,from_addr != '0x':语法无效,要明确判断每个变量是否不等于'0x' - 手动加
"\n":保证每次追加的内容单独占一行
方法二:修复os.system调用(不推荐)
如果一定要用os.system,需修正变量名、条件判断和命令格式:
import os if to != '0x' and from_addr != '0x': output_line = f"To: {to} From: {from_addr}" print(output_line) # 用双引号包裹内容,避免变量含空格时出错 os.system(f'echo "{output_line}" >> output.txt')
注意事项:
- 若
to或from_addr包含特殊字符(空格、引号等),这种方法容易出问题,不如Python内置文件操作稳定 - 原代码里变量名大小写混乱(用了
To:/From:但实际变量是to/from_addr),需统一变量名
内容的提问来源于stack exchange,提问作者Dan Gonzalez
相关产品推荐
相关产品推荐

