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

Python动态处理文本文件:替换符号、拆分数值求和及统计条目数

动态处理工具价格文本文件的Python解决方案

我明白你的需求了——要处理那种用#分隔工具名和价格的文本文件,而且得能适配文件内容的变化,不能写死逻辑。下面我给你一套灵活的实现方案,不管文件里有多少条目、价格格式怎么变(只要是合法的浮点数)都能搞定:

1. 核心实现思路

  • 读取文件内容后,全局替换#为$,满足格式转换需求
  • 按空格自动拆分所有“工具+价格”条目,不用硬编码条目数量
  • 对每个条目拆分出价格部分,转换为数值后累加求和
  • 直接通过拆分后的列表长度统计条目总数,适配任意数量的工具

2. 完整可复用代码

def process_tool_prices(file_path):
    # 读取文件内容,自动去除首尾空白字符
    with open(file_path, 'r', encoding='utf-8') as f:
        raw_content = f.read().strip()
    
    # 全局替换#为$,生成格式化内容
    formatted_content = raw_content.replace('#', '$')
    print("格式化后的文本内容:", formatted_content)
    
    # 按空格拆分所有工具条目
    tool_items = formatted_content.split()
    item_count = len(tool_items)
    
    # 累加计算总价,同时处理异常格式
    total_price = 0.0
    for item in tool_items:
        try:
            # 拆分出$后面的价格字符串,转换为浮点数
            price = float(item.split('$')[1])
            total_price += price
        except (IndexError, ValueError):
            print(f"⚠️ 警告:条目「{item}」格式无效,已跳过统计")
    
    # 输出最终结果
    print(f"\n统计结果:")
    print(f"- 工具条目总数: {item_count}")
    print(f"- 所有工具总价: ${total_price:.2f}")
    
    return item_count, total_price

# 调用示例(替换成你的文件路径)
if __name__ == "__main__":
    process_tool_prices("tools.txt")

3. 为什么这套代码能适配文件变化?

  • 无硬编码逻辑:不管文件里有1个还是100个工具,split()都会自动识别并拆分所有条目
  • 容错机制:如果某个条目的价格格式错误(比如不是数字、缺少分隔符),程序会跳过该条目并给出提示,不会直接崩溃
  • 通用格式兼容:只要条目保持「名称#价格」的基础格式,不管名称长短、价格是整数还是小数都能处理

示例运行效果

假设tools.txt内容为:hammer#9.95 saw#20.15 shovel#35.40
运行代码后输出:
格式化后的文本内容: hammer$9.95 saw$20.15 shovel$35.40

统计结果:

  • 工具条目总数: 3
  • 所有工具总价: $65.50

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 09:34:13