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

Python开发票务系统读取CSV文件列输出异常如何解决

你当前输出行列反转的核心原因是:代码逻辑把每一列的所有值分别汇总到了name_l/age_l/sex_l三个独立列表,打印时直接把整个列列表拼接成一行输出,自然就变成了一行展示所有姓名、一行展示所有年龄的情况,和预期的每行展示一条完整票务记录的要求不符。

修复方案

方案1(推荐,无冗余存储)

直接缓存整行记录,不需要拆分到不同的列列表,打印时逐行输出即可:

import sys, select, os, csv
from os import system

with open(input("\nInput file name with .csv extension: "), 'r', newline = '') as f:
    fileDir = os.path.dirname(os.path.realpath('__file__'))
    reader = csv.reader(f, delimiter = '\t')
    header_row = next(reader)
    
    total_tickets = 0
    rows = []
    for row in reader:
        rows.append(row)
        total_tickets += 1

# 打印表头
print('\t'.join(header_row))
# 逐行打印每条记录
for row in rows:
    print('\t'.join(row))
print("\nTotal Tickets: ", total_tickets)

方案2(保留原列缓存逻辑)

如果你的业务后续需要对姓名、年龄、性别列分别做统计处理,可以在原有代码基础上仅修改打印逻辑,按行索引拼接对应字段:

# 原有读取列的逻辑保持不变,仅替换打印部分代码
print('\t'.join(header_row))
for i in range(total_tickets):
    print(f"{name_l[i]}\t{age_l[i]}\t{sex_l[i]}")
print("\nTotal Tickets: ", total_tickets)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 03:57:01