Попробуйте это:
:%s/^\(.*\)\(\n\1\)\+$/\1/
Это ищет любую строку, сразу сопровождаемую одной или несколькими копиями себя, и заменяет его единственной копией.
Делают копию Вашего файла хотя перед попыткой его. Это не тестируется.
Это проблема Python 3675 . Эта ошибка фактически исправлена в Python 3.11.
Если мы импортируем:
from lib2to3.fixes.fix_imports import MAPPING
MAPPING сопоставляет имена Python 2 с именами Python 3. Мы хотим сделать это наоборот.
REVERSE_MAPPING={}
for key,val in MAPPING.items():
REVERSE_MAPPING[val]=key
Мы можем переопределить Unpickler и load
class Python_3_Unpickler(pickle.Unpickler):
"""Class for pickling objects from Python 3"""
def find_class(self,module,name):
if module in REVERSE_MAPPING:
module=REVERSE_MAPPING[module]
__import__(module)
mod = sys.modules[module]
klass = getattr(mod, name)
return klass
def loads(str):
file = pickle.StringIO(str)
return Python_3_Unpickler(file).load()
Затем мы вызываем это load вместо pickle.loads.
Это должно решить проблему.