You need to enable JavaScript to run this app. 为何Python代码打印的文本格式不符预期、拼接内容出现错位?
优惠活动
大模型
产品
解决方案
定价
更多

为何Python代码打印的文本格式不符预期、拼接内容出现错位?

代码错位问题调试

问题根因

  • 无效的换行清理操作
    Python中的字符串是不可变对象,你代码里所有row.rstrip('\n')、rows[i].rstrip('\n')的调用全是无效的:rstrip方法只会返回移除末尾换行后的新字符串,不会修改原字符串本身。你以为已经删掉了行尾换行,实际存进列表的每一行都带着原始换行标记,打印时会把原本完整的一行拆成多段短内容,直接造成输出两头短、行内容错位的异常效果。
  • 同对象重复存储的逻辑偏差
    读文件时你把同一个带换行的原始行,先后append到input和rows两个列表中,两个列表存的内容完全一致。后续拼接时相当于给每一行带换行的原始内容后面,又拼了一遍相同的带换行内容,进一步打乱了原本的行结构。

修正方案

读文件阶段就对每一行做换行清理,将处理后的纯文本行存入列表,从源头消除换行残留;拼接环节直接使用预处理好的干净字符串完成拼接,不需要重复调用无意义的rstrip操作。
修正后的可运行代码:

import fileinput

input = []
rows = []

# 读入时即时清理行尾换行
with fileinput.input('data.csv') as data:
    for row in data:
        clean_row = row.rstrip('\n')
        input.append(clean_row)
        rows.append(clean_row)

def fill_row():
    for i in range(len(rows)):
        # 直接拼接预处理后的干净字符串
        rows[i] += input[i]

fill_row()

for line in rows:
    print(line)

修正后每一行的换行残留会被彻底清除,拼接完成后行宽保持一致,不会再出现拆出短行、整体错位的输出问题。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.11.13 02:57:01