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

如何从存储购买记录的文件中提取价格并计算总和?

如何从订单文件中提取价格并求和?

嘿,这个问题其实很好解决!核心思路就是从每一行文本里精准抠出Rs.后面的价格数字,然后把它们累加起来就行。我给你用Python写几个实用的方案,毕竟商店程序用Python开发的场景挺多的~

先看看你的文件内容:

You have purchased 5 banana of Rs. 500
You have purchased 2 banana of Rs. 200
You have purchased 1 banana of Rs. 100

方案1:字符串分割(简单直接,适合固定格式)

如果你的文件格式一直这么规整(每一行的价格都紧跟在Rs. 后面),用字符串分割就足够高效:

total_amount = 0

# 替换成你的实际文件路径,比如'./purchase_records.txt'
with open('orders.txt', 'r') as file:
    for line in file:
        # 按"Rs. "分割字符串,取后半部分并去掉多余空格
        price_part = line.split('Rs. ')[1].strip()
        # 转成整数后累加
        total_amount += int(price_part)

print(f"购物车总金额:Rs. {total_amount}")

方案2:正则表达式(更健壮,适配格式小变动)

如果以后订单格式可能有小变化(比如Rs.后面空格不固定,或者行里有其他数字),用正则表达式就更靠谱,它能精准锁定Rs.后面的数字:

import re

total_amount = 0

with open('orders.txt', 'r') as file:
    for line in file:
        # 匹配"Rs. "后面的一串数字,\d+表示一个或多个阿拉伯数字
        match_result = re.search(r'Rs\. (\d+)', line)
        if match_result:
            # 提取匹配到的数字并转成整数累加
            price = int(match_result.group(1))
            total_amount += price

print(f"购物车总金额:Rs. {total_amount}")

进阶:加入异常处理(避免程序崩溃)

如果担心文件里有格式错误的行(比如某行没写价格,或者价格不是数字),可以加个异常处理,让程序更稳定:

import re

total_amount = 0

with open('orders.txt', 'r') as file:
    for line_num, line in enumerate(file, start=1):
        line = line.strip()
        if not line:  # 跳过空行
            continue
        
        match_result = re.search(r'Rs\. (\d+)', line)
        if match_result:
            try:
                price = int(match_result.group(1))
                total_amount += price
            except ValueError:
                print(f"警告:第{line_num}行的价格格式有误,已跳过:{line}")
        else:
            print(f"警告:第{line_num}行未找到有效价格,已跳过:{line}")

print(f"购物车总金额:Rs. {total_amount}")

这几个方案都能解决你的问题,根据你的实际需求选就行~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.27 03:32:36