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

Python 3中编辑银行客户CSV时如何排除最后两列?

解决Python银行项目中编辑客户信息排除最后两列的问题

问题分析

你需要在编辑客户信息时跳过最后两列(account_balance和overdraft_limit),之前的错误在于把行切片当成列长度计算,导致逻辑出错。正确思路是取总列数减2,只循环前6列。

修正方案

1. 修改循环范围

将遍历所有列的循环,改为只遍历前总列数-2列:

# 原错误代码
# for i in range(len(existing_clients[0])):

# 修改后代码
for i in range(len(existing_clients[0]) - 2):

这种写法比硬写数字6更灵活,哪怕后续CSV列数调整,只要最后两列是无需编辑的,代码依然有效。

2. 完整修正后的代码

if choice == "4":
    editClient = int(input("Please enter the index number of the client you wish to edit: "))
    print("Please enter the details for each of the following: ")
    # 仅遍历前6列,跳过最后两列
    for i in range(len(existing_clients[0]) - 2):
        newDetails = input("Enter new data for " + str(existing_clients[0][i]) + ": ")
        existing_clients[editClient][i] = newDetails
    changes = input("Are you sure you'd like to make these changes? Enter Yes or No")
    if changes == ("Yes"):
        with open("mock_data.csv", "w+", newline="") as file:
            writer = csv.writer(file)  # 修正原代码笔误:将reader改为writer
            for row in existing_clients:
                writer.writerow(row)
    if changes == ("No"):
        exit()

注意:原代码中reader = csv.writer(file)是笔误,必须改为writer = csv.writer(file),否则会触发语法错误。

原理说明

  • len(existing_clients[0])获取表头总列数(示例中为8),减去2后得到6,对应可编辑的前6个字段:first_name、last_name、title、pronouns、dob、occupation。
  • 保存数据时仍写入全部列,保证CSV文件结构完整,仅在编辑阶段跳过无需修改的字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 00:50:51