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

如何用Python将含文本与数字的列表按对齐列写入TXT文件?

解决Python写入TXT文件列对齐问题

你当前用多个制表符(\t)拼接内容导致列错位,核心原因是制表符按固定间隔跳转,无法适配不同长度的文本。改用字符串格式化固定列宽就能解决这个问题,具体调整如下:

方法思路

通过格式化字符串为每一列指定固定宽度,第一列左对齐(保证文本靠左),数字列右对齐(保证小数点对齐),单位列按需设置宽度,这样不管文本长度如何,每列都会占据固定字符空间,自然对齐。

修改后的代码

with open('C:\\Users\\---\\OneDrive\\Desktop\\Report.txt', 'w') as f:
    f.write("\t\t\t\tFALIZ CONESH FARAND COMPANY \n"+"\t\t\t\t Address\n"
            "THESE ARE PARAMETERS CALCULATED FOR A HOUSING INCLUDING FILTER ELEMENTS \n"+
            "     \n"+
            "\t\t\t\t\t HOUSING PARAMETERS: \n")
    # 自动计算第一列文本的最大长度,加2个空格余量避免挤在一起
    max_col1_len = max(len(str(item)) for item in Parameters[0])
    # 遍历参数列表,用enumerate同时获取索引和文本
    for i, line in enumerate(Parameters[0]):
        number = Parameters[1][i]
        unit = Parameters[2][i]
        # 格式化:第一列左对齐占(max_col1_len+2)位,数字右对齐占8位,单位直接拼接
        formatted_line = f"{line:<{max_col1_len+2}} {number:>8} {unit}"
        f.write(formatted_line + '\n')

关键说明

  1. 自动计算第一列宽度:max_col1_len会遍历第一列所有文本,取最长的长度,再加2个空格作为余量,确保文本和数字之间有足够间隔,比固定宽度更灵活。
  2. 格式化语法:
    • {line:<{max_col1_len+2}}:左对齐文本,总长度为max_col1_len+2,不足的地方用空格填充。
    • {number:>8}:右对齐数字,总长度8位,这样不同位数的数字(比如0.0和0.02)会自动对齐小数点。
  3. 替代手动索引维护:用enumerate遍历第一列,同时拿到索引i,比手动写i=i+1更简洁不易出错。

如果你不想自动计算宽度,也可以直接指定固定值(比如{line:<25}),只要这个值大于第一列最长文本的长度即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.05 10:17:09