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

Numpy savetxt配合with open使用时无法追加写入反而覆盖文件问题

问题原因

你的with open写法存在传参错误,两段代码逻辑本质上根本不一致:

  • 能正常追加的写法中,你把open()返回的、以追加模式'a'打开的文件对象f直接传给了np.savetxt,numpy会直接向这个已打开的文件句柄写入内容,完全遵循你设置的追加模式,不会覆盖原有文件。
  • 覆盖文件的with写法中,你虽然用追加模式打开了文件拿到了句柄f,但调用np.savetxt时传入的第一个参数是文件名字符串'testfile.o',根本没有用到已经打开的f。这种情况下numpy会自行重新打开目标文件,默认使用'w'覆盖写入模式,你在with open里设置的追加模式、编码参数完全没有生效,自然会清空原有内容。
修正后的正确写法
import numpy as np
Array = np.array([[1,2,3],[4,5,6],[7,8,9]])

with open('testfile.o', 'a', encoding="utf-8") as f:
    np.savetxt(f, Array, fmt='%4.2f\n')

注:你最初给出的数组定义代码末尾缺少右括号,直接运行会触发语法错误,补上即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 04:27:26