执行反向BWT时,Python列表索引超出范围

2024-05-17 06:35:40 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图将文本块从一个文本文件传递到一个反向的Burrows-Wheeler转换函数中,我得到了列表索引超出范围的错误,不知道为什么。我正在读取一个应用了BWT的文本文件,将其分成大小为block_size的块,并将它们存储在一个列表text。然后我尝试对text中的每个元素调用inverse。在

def inverse(s):
    L = [''] * block_size                                     
    for i in range(block_size):
        L = sorted([s[i] + L[i] for i in range(block_size)])   
    with open(sys.argv[2], 'a') as output_file:
        output_file.write([x for x in L if x.endswith('\0')][0][:-1])

with open(sys.argv[1], 'r') as input_file:
    while block_size:
        block = input_file.read(block_size)
        if not block:
            break
        text.append(block)
    for block in text:
        inverse(block)

如果我将整个文本文件传递到inverse而不将其拆分,则可以正常工作;但我希望将文本分成可管理的块。是我的text列表导致了错误吗?在


Tags: textin文本列表forsize错误with