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

Bitcoin地址转RIPEMD160时缩进错误导致输出文件为空问题咨询

问题修复指南

1. IndentationError报错原因

缩进错误是代码运行失败的核心原因,具体错误位置如下:

  • dec_to_byte 函数内部的return (out) 缩进层级错误,放在了while循环内部,循环仅执行一次就会提前返回
  • dec = base58_to_dec(addr)、out = dec_to_byte(dec) 两行缩进层级错误,应该和内部函数base58_to_dec、dec_to_byte平级,属于decode函数的顶层逻辑
  • 最后一行return (out)多了一层缩进,和decode函数的预期返回层级不匹配

2. RIPEMD160.txt为空的原因

  • 你在with代码块中仅将解码后的结果赋值给了addr变量,完全没有调用i.write()方法将结果写入文件,处理后的数据没有持久化存储自然是空文件
  • 读取的地址没有去掉末尾的换行符,直接调用b58decode_check会解码失败,即使写了写入逻辑也会提前报错终止
  • 你自定义的decode函数全程没有被调用,with块中用的是base58库自带的解码方法,自定义逻辑完全没生效

修复后的可运行代码

如果直接使用base58库的自带方法,简化后代码如下:

import base58

with open('addresses.txt', 'r') as f, open('RIPEMD160.txt', 'a') as i:
    for addr in f:
        # 去掉地址首尾的空白符、换行符
        addr = addr.strip()
        if not addr:
            continue
        # 解码后取2到末尾的字符就是RIPEMD160哈希
        # Python2环境下把.hex()替换为.encode('hex')即可
        ripemd160 = base58.b58decode_check(addr).hex()[2:]
        # 写入文件,加换行分隔不同地址的结果
        i.write(ripemd160 + '\n')

如果要使用自定义的decode函数,需要先安装导入mpmath库的mpf方法,同时修正所有缩进错误:

from mpmath import mpf
import base58

def decode(addr):
    b58 = '123456789ABCDEFGHJKLMNPQRSTUVWXYZabcdefghijkmnopqrstuvwxyz'

    def base58_to_dec(addr):
        dec = 0
        for i in range(len(addr)):
            dec = int(dec * 58 + b58.index(addr[i]))
        return dec

    def dec_to_byte(dec):
        out = ''
        while dec != 0:
            remn = mpf(dec % 256)
            dec = mpf((dec - remn) / 256)
            temp = hex(int(remn))
            if len(temp) == 3:
                temp = '0' + temp[-1]
            else:
                temp = temp[2:]
            out = temp + out
        return out

    dec = base58_to_dec(addr)
    out = dec_to_byte(dec)
    return out

with open('addresses.txt', 'r') as f, open('RIPEMD160.txt', 'a') as i:
    for addr in f:
        addr = addr.strip()
        if not addr:
            continue
        decoded = decode(addr)[2:]
        i.write(decoded + '\n')

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.05 12:21:01