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

无需csvwriter:如何将print语句写入CSV同时在Bash终端输出内容

解决方案

方法1:单独维护文件句柄(最直观)

不用修改全局的sys.stdout,直接打开一个文件对象专门写CSV,需要输出终端时就用默认的print:

# 打开CSV文件用于写入
csv_file = open("result.csv", "w")

# 写入CSV的内容,指定file参数为文件对象
print("something", variable, file=csv_file)
print("another_data", var2, file=csv_file)

# 直接输出到Bash终端的内容,不用加file参数
print("这条信息会显示在终端里")

# 写完记得关闭文件
csv_file.close()

方法2:保留原始终端输出流

如果习惯用重定向stdout的方式,可以先把原始的终端输出流保存下来,需要输出终端时指定用它:

import sys

# 保存原始的终端输出流
original_stdout = sys.stdout

# 重定向stdout到CSV文件
sys.stdout = open("result.csv", "w")
print("something", variable)
print("more_content", var3)

# 切回终端输出,先关闭CSV文件,再恢复stdout
sys.stdout.close()
sys.stdout = original_stdout
print("这条内容直接打印到Bash终端")

# 若还要继续写CSV,重新打开并追加内容
sys.stdout = open("result.csv", "a")
print("additional_data", var4)
sys.stdout.close()
sys.stdout = original_stdout

额外提醒

如果你的数据里包含逗号、双引号这类CSV特殊字符,直接用print写可能会导致格式错乱。虽然你不想用csvwriter,但如果涉及复杂内容,建议用Python内置的csv模块,它会自动处理转义问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 17:42:53