#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Удаление секций binary из файла xxxx.fb2.zip
import sys, os, io, zipfile
cover = ''
NameFb2 = ''
L=[]
#---------------------------------------------
def Del_Image():
, ,global NameFb2
, ,global L
, ,vi = io.StringIO()
, ,notbinary = True
, ,for i in L:
, , , ,if notbinary:
, , , , , ,if (i.find('<binary')>=0):
, , , , , , , ,if (i.find(cover)>=0):
, , , , , , , , , ,vi.write(i)
, , , , , , , ,else:
, , , , , , , , , ,notbinary = False
, , , , , ,else:
, , , , , , , ,vi.write(i)
, , , ,if i.find('</binary')>=0:
, , , , , ,notbinary = True
, ,w = zipfile.ZipFile('^temp.zip', 'w', zipfile.ZIP_DEFLATED) # Создание нового архива
, ,w.writestr(NameFb2, vi.getvalue()) , ,
, ,w.close()
, ,vi.close()
#----------------------------------------
def o_zip(fn):
, ,global NameFb2
, ,global L
, ,z = zipfile.ZipFile(fn, 'r')
, ,filelist = z.namelist()
, ,for n in filelist:
, , , ,try:
, , , , , ,if n[-4:] == ".fb2":
, , , , , , , ,body = z.open(n)
, , , , , , , ,NameFb2 = n
, , , , , , , ,for line in body:
, , , , , , , , , ,L.append(str(line, 'UTF-8'))
, , , , , , , ,return True
, , , ,except:
, , , , , ,print( "error:", n )
, , , , , ,return False
#-------------------- main ------------------------
print('Удаление секций binary из файла xxxx.fb2.zip')
FileName = input('Введите имя файла:')
if FileName == '':
, , exit()
e = input('Удалить обложку? [y/n]')
if e == 'y':
, , cover = 'not'
else:
, , cover = 'cover.'
if os.path.isfile(FileName):
, ,if o_zip(FileName):
, , , ,Del_Image()
, , , ,os.remove(FileName)
, , , ,os.rename('^temp.zip', FileName)
, , , ,print("Done.")
, ,else:
, , , ,print("???")
else:
, ,print("File doesn't exists!")