我试图从文本文件中将文本块传递给逆Burrows-Wheeler转换函数,并且我得到列表索引超出范围错误,不知道为什么。我正在阅读已将BWT应用于其中的文本文件,将其分成大小为block_size
的块并将其存储在列表text
中。然后,我尝试在inverse
中的每个元素上调用text
。
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
列表是否导致错误?