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

Python如何将文件1的数值对应赋值到文件2完成表达式计算

Python实现键值映射替换表达式并计算的方案

实现逻辑

  • 先解析文本文件1的键值映射关系,存储为字符串键对应浮点值的字典
  • 读取文本文件2的表达式字符串,将其中所有键替换为对应的数值
  • 执行替换后的表达式得到计算结果

完整代码示例

# 1. 解析文件1的键值映射
with open('文件1的实际路径.txt', 'r', encoding='utf-8') as f1:
    content1 = f1.read().strip()
key_value = {}
for item in content1.split(','):
    k, v = item.split('=')
    # 键存字符串方便后续替换
    key_value[k.strip()] = float(v.strip())

# 2. 读取文件2的表达式
with open('文件2的实际路径.txt', 'r', encoding='utf-8') as f2:
    expr = f2.read().strip()

# 3. 替换表达式中的键为对应数值,按键长度倒序替换避免短键先匹配出错
for k in sorted(key_value.keys(), key=lambda x: len(x), reverse=True):
    expr = expr.replace(k, str(key_value[k]))

# 4. 计算表达式
result = eval(expr)
print(f"计算结果为:{result}")

注意事项

  • 替换键时按长度倒序处理,是为了避免存在1和10这类长短键时,短键先替换导致长键匹配失效的问题,你的示例中都是单个数字键,该逻辑也兼容
  • eval方法仅适合表达式来源完全可信的场景,如果是外部不可信输入,建议使用sympy库的parse_expr方法完成计算,避免代码注入风险
  • 你给出的示例计算过程为(0.345 + 54.6) * (235.67 + 54.6) = 54.945 * 290.27 = 15948.41715,代码运行后会输出对应结果

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 05:36:08