首页 > 解决方案 > Python3 RLE 字符

问题描述

我正在学习python,我有这段代码可以用空格压缩和解压缩,我想知道我怎么能得到字母,也就是说,只取字符而不是空格

堆栈溢出希望我用代码添加更多关于我的问题的评论,所以我写这个只是忽略这部分好吗?

archive = open('text.txt', 'r')
archiveS = archive.read()

archiveC = open('./archive2.txt', 'w')
archiveD = open ('./archive3.txt', "w")

list = []
compressed = ''
uncompressed = ''

for line in archiveS:
       for ch in line:
           list.append(ch)

white = 0
text = len(list)

if white < text:
    for letter in archiveS:
        if letter == ' ':
            white += 1

        elif white > 0:
            compressed += 'x' + str(white)

            white = 0
        if letter!=' ':
            compressed+=letter

    archiveC.write(compressed)

print(archiveC)

print(compressed)


counter = 0

lst  = list2 = []

for letter in compressed:

    if letter == 'x':
       pass

    elif letter.isnumeric():

        num = int(letter)
        list2.append(' '*num)

        uncompressed = lst

    else:
        list2.append(letter)


strDes =''.join(uncompressed)

print(uncompressed, 'descompressed')

archiveD.write(strDes)
archive.close()
archiveC.close()
archiveD.close()

标签: pythonrun-length-encoding

解决方案


推荐阅读