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

Python删除文本文件指定行异常求助:按CustID删记录出错

问题分析与解决方案

嘿,我一眼就看出问题所在了——你的代码现在用的是包含性判断来筛选要保留的行,这就是为什么输入4时,所有带数字4的行都被误删了,哪怕它们的CustID并不是4。

核心问题

你当前的判断逻辑是:

if searchID not in line:
    f.write(line)

这意味着只要某一行的任意位置包含你输入的字符串(比如4),这行就会被跳过不写入(也就是被删除)。比如如果有个客户的CustID是14,或者电话号码里有4,这行都会被误删。你需要的是精确匹配CustID字段,而不是整行包含。

修复后的代码

修改循环里的判断逻辑,先拆分每行的字段,精确对比CustID:

def deleteCustomer(login):
    print("\n***********\n Delete a customer\n*************\n")
    with open ("customers.txt") as f:
        print("CustID\t Name \t\t\t Customer Town \t Customer Tel Number")
        for row in f:
            field = row.split(",")
            custID = field[0]
            custFName = field[1]
            custLName = field[2]
            custTown = field[3]
            custTelNum = field[4].strip()  # 去掉换行符,避免打印多余空行
            print(custID,"\t" ,custFName,custLName,"\t\t" ,custTown,"\t" ,custTelNum)
    while True:
        searchID = input("Please enter the CustID you wish to delete :")
        # 先读取所有行
        with open ("customers.txt","r") as f:
            new_f = f.readlines()
        # 重新写入文件,只保留CustID不匹配的行
        with open ("customers.txt","w") as f:
            for line in new_f:
                line_stripped = line.strip()
                if not line_stripped:  # 跳过空行,避免无效内容
                    continue
                fields = line_stripped.split(",")
                # 精确匹配CustID字段,不相等才写入
                if fields[0] != searchID:
                    f.write(line)
        sleep(2)
        viewCustomers(login)
        # 增加退出循环的选项,避免无限执行
        cont = input("Do you want to delete another customer? (y/n): ")
        if cont.lower() != 'y':
            break

关键修改点

  1. 精确匹配字段:把每行拆分成字段后,只对比第一个字段(CustID)和用户输入的searchID,只有当两者不相等时才写入该行,彻底避免误删。
  2. 拆分读写操作:将读文件和写文件分成两个独立的with块,避免r+模式下的指针位置混乱,逻辑更清晰易懂。
  3. 处理空行与格式:跳过空行,同时清理电话号码字段的换行符,让打印输出更整洁。
  4. 增加退出选项:原来的while True会无限循环删除流程,加个询问让用户可以自主退出。

这样修改后,输入4就只会删除CustID正好是4的那条记录,其他包含数字4的行都会被正常保留下来啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.15 07:04:16