删除文件中特定字符时,报列表超范围错,请教各位看看是什么原因,如何解决?

  整理一个文件(111万行,每行最大560个字符,正常每行均以数字开头)时,发现其中存在特定字符导致异常换行、对齐错误问题。错行示例如下:

img
于是想将特定字符删除,保证文件的规范性。因为行数较多,所以加了计数条件,每到100行就写入一次。
代码如下:

import re
with open(r'D:\ProgramData\cx_list', 'rb') as file_in:
    lists=[]
    cnt=0
    with open(r'D:\ProgramData\cx_list_ok', "a", encoding="gbk") as file_temp:
        for line in file_in:
            while cnt<100:
                m=re.match('^[0-9]+',str(line))
                cnt=cnt+1
                if m:
                    lists.append(str(line).replace('\\t',''))
                else:
                    lists[-1]=lists[-1].strip('\n')+str(line).replace('\\t','')
            for line1 in lists:
                file_temp.write(line1)
            lists=[]
            cnt=0
   上述代码运行后,报错如下:
File "D:\ProgramData\work\char_chck.py", line 20, in <module>
    lists[-1]=lists[-1].strip('\n')+str(line).replace('\\t','')
IndexError: list index out of range

lists在100行记录之后置空了,如果下一次刚好没有正则匹配到,那lists就是空的