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

如何在写入DAT文件时给二维数组每行开头添加空格?

解决方案

你可以通过np.savetxt的fmt参数自定义输出格式,直接在每个数值的格式字符串前添加空格,同时指定符合需求的科学计数法格式:

import numpy as np

# 假设x和y是你的数据数组
data = np.column_stack((x, y))
with open('output.dat', 'w') as datfile:
    # fmt参数中,%1.7E 表示带1个前导空格、7位小数的科学计数法格式,两个字段用两个空格分隔
    np.savetxt(datfile, data, fmt=' %1.7E  %1.7E')

关键说明:

  • fmt=' %1.7E' 里的前置空格就是用来实现每行开头空格的,%1.7E指定了输出格式为大写E的科学计数法并保留7位小数,和你期望的示例格式完全匹配。
  • 你原代码里的for _ in range(N):循环是多余的,它会把整个data数组重复写入N次,去掉这个循环就能正常输出一遍数据。

测试后输出会和你期望的一致:

0.0000000E+00  0.0000000E+00
 2.0020020E-03  0.0000000E+00
 4.0040040E-03  0.0000000E+00
 ...

如果需要更灵活的控制,也可以手动遍历每行数据,拼接带开头空格的字符串后写入:

with open('output.dat', 'w') as datfile:
    for row in data:
        line = f' {row[0]:.7E}  {row[1]:.7E}\n'
        datfile.write(line)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.10 08:00:55