Python 我已经编写了一些代码来对ascii艺术的多行rle进行rle压缩,但是解码器不是';t正在解码多行代码

Python 我已经编写了一些代码来对ascii艺术的多行rle进行rle压缩,但是解码器不是';t正在解码多行代码,python,run-length-encoding,Python,Run Length Encoding,我正在制作一个程序来对ASCII艺术进行多行压缩和解压缩,但是当我对一些东西进行编码时,解码器无法处理多行压缩代码,并输出一些不同的东西 我试着输入压缩数据作为字符串和从一个文件 def encoder(art): codify = '' previous_character = '' count = 1 if not art: return '' for char in art: if char != previous_chara

我正在制作一个程序来对ASCII艺术进行多行压缩和解压缩,但是当我对一些东西进行编码时,解码器无法处理多行压缩代码,并输出一些不同的东西

我试着输入压缩数据作为字符串和从一个文件

def encoder(art):  
    codify = ''
    previous_character = ''
    count = 1

    if not art: return ''

    for char in art:
        if char != previous_character:
            if previous_character:
                codify += str(count) + previous_character
            count = 1
            previous_character = char
        else:
            count += 1
    else:
        codify += str(count) + previous_character
        return codify
#The function for decoding
def decoder(data):  
    decode = ''
    add = ''
    for char in art:
        if char.isdigit():
            add += char
        else:
            decode += char * int(add)
            add = ''
    return decode

我希望它将ASCII图像输出回来,但它输出了1000行无用数据。

解码器循环是
用于art中的字符
,但
解码器的输入变量不是
art
,而是
数据
。解码器循环是
用于art中的字符
,但是
解码器
的输入变量不是
art
,而是
数据