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

Python如何写入格式不统一的.dat文件:前3位科学计数法后2位为整数

Python支持和MATLAB非常接近的格式化字符串语法,可以直接实现你的需求,不需要手动拼接字符串。


核心实现方法

你可以直接套用和MATLAB几乎一致的格式声明,只需要额外把最后两个值转为整数类型即可:

# 直接使用%格式化,和你熟悉的MATLAB写法匹配
formatted_line = "%.6e %.6e %.6e %d %d\n" % (
    final_BCT[r][0], 
    final_BCT[r][1], 
    final_BCT[r][2], 
    int(final_BCT[r][3]), 
    int(final_BCT[r][4])
)

如果使用Python3.6+版本,也可以用f-string实现:

a,b,c,d,e = final_BCT[r]
formatted_line = f"{a:.6e} {b:.6e} {c:.6e} {int(d)} {int(e)}\n"

完整写入示例

如果需要循环写入所有行到.dat文件,可以参考以下代码:

# 以写入模式打开目标文件
with open("output.dat", "w", encoding="utf-8") as f:
    # 写入第一行内容(可根据你的实际需求调整第一行逻辑)
    f.write("这里替换为你文件第一行的实际内容\n")
    # 循环处理每一行数据
    for row in final_BCT:
        a, b, c, d, e = row
        # 按要求格式化后写入
        f.write("%.6e %.6e %.6e %d %d\n" % (a, b, c, int(d), int(e)))

原代码问题说明

你之前直接将numpy数组转为字符串的方式,会默认把所有元素都输出为浮点数格式,因此后两位也会保留小数位。使用格式化字符串可以精准控制每个位置的输出规则,完全匹配你的格式要求。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 20:24:05