, , , ,if (SQ != None) and (SQ != '') and (old_List[i+1].find(SQ)==0):
, , , , , ,m = -(len(SQ)+1)
, , , , , ,new_List.append(s[:m]+'@') # помечаем строку для последующего объединения
, , , ,else:
, , , , , ,new_List.append(s)
, ,else:
, , , ,new_List.append(s)
, ,i += 1
, ,if i > len(old_List):
, , , ,new_List.append(item[i+1])
, , , ,break
old_List.clear()
# второй проход. соединение строк
#for item in reversed(new_List):
for item in new_List:
, ,if item == '':
, , , ,if SS != '':
, , , , , ,old_List.append(SS)
, , , , , ,SS = ''
, , , ,old_List.append(item)
, , , ,continue
# , ,print(item)
, ,if FlagQ:
, , , ,SS = SS[:-1] + item
, , , ,FlagQ = item[-1] == '@'
, ,else:
, , , ,if SS != '':
, , , , , ,old_List.append(SS)
, , , , , ,SS = ''
, , , ,if item[-1] == '@': # последний символ строки
, , , , , ,FlagQ = True
, , , , , ,SS = item
, , , ,else:
, , , , , ,old_List.append(item)
, , , , , , , ,
if SS != '':# запись последней строки
, ,old_List.append(SS)
#--------------------------------------
fn2="2_.txt"
new_file=open(fn2,'w')
for i in old_List:
, , new_file.write(i+'\n')
new_file.close()
print('Done')
str2parag.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
#-- скрипт для сборки абзацев из разрозненных строк ---
s = '' # строка коию будем записывать в список
L = [] # список для хранения выходного файла
i = 0 # указатель положения в файле
def RusBukva1(n): # обработка буквы «до»
, ,return ((n > 223) and (n < 256)) or (n==44) or (n==45)
def RusBukva2(n): # обработка буквы «после»
, ,return ((n > 223) and (n < 256))
f = open('alfredr.txt', 'rb') # открываем и читаем промежуточный файл
d = f.read()
f.close()
c13 = 2 # константа индицирующая наличие символа «13»
for n in d: # проверка промежуточного файла на наличие символа «13»
, ,if (n == 13):
, , , ,c13 = 3
, , , ,break
for n in d: # основной цикл проверки файла
, ,i +=1 # инкримент указателя положения в файле
, ,if (n == 10): # если конец строки
, , , ,if RusBukva1(d[i-c13]) and RusBukva2(d[i]): # проверяем «до» и «после»
, , , , s += ' ' # в строку пробел
, , , ,else:
, , , , L.append(s) # добавляем строку в список
, , , , s='' # подготовка пустой строки
, ,else:
, , , ,if n != 13:
, , , , , ,m = d[i-1] # эта строка и 6 строк ниже объясню еще ниже
, , , , , ,if (m > 191) and (m < 256):
, , , , , , , ,m += 848
, , , , , ,elif(m==184):
, , , , , , , ,m = 1105
, , , , , ,elif (m==151):
, , , , , , , ,m = 8212
, , , , , ,s += chr(m) # запись символа в строку
f = open('outtext.txt', 'w') # выходной файл
for etem in L: # просматриваем список и записываем в файл
, ,f.write(etem+'\n')
f.close()
print('OK!!!')
utf8-1251.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
fin = open('art.txt', 'r') # открываем исходный файл
out = open('outt.txt', 'w', encoding='cp1251') # подготавливаем промежуточный файл
for s in fin: # переписываем из файла в файл
, ,s = s.rstrip()
, ,out.write(s+'\n')
fin.close()
out.close()
print('Done')
8 Images
base64_pic.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
import base64
def getAttribute(Tag):
, ,s = Tag[Tag.find(' id=')+4:]
, ,s = s[s.find('"')+1:]
, ,s = s[:s.find('"')]
, ,return s
def parseBinaryContent(filename):
, ,
# filename = sys.argv[1]
, ,if filename[-4:] == '.fb2':
, , , , dirname = filename[:-4]+'_pic'
, ,else:
, , , , exit()
, ,if not os.path.isdir(dirname):
, , , ,os.mkdir(dirname)
, ,flag = False
, ,bina = False
, ,S = ''
, ,#------------------------
, ,path = os.getcwd()
, ,fin = os.path.join(path, filename)
, ,f = open(fin, 'rb')
, ,d = f.read()
, ,
, ,for n in d:
, , , ,if bina:
, , , , , ,if chr(n) == '<':
, , , , , , , ,print('5')
, , , , , , , ,dd = base64.urlsafe_b64decode(S) #()
, , , , , , , ,hh = open(os.path.join(dirname, name_Pic), 'wb')
, , , , , , , ,hh.write(dd)
, , , , , , , ,hh.close()
, , , , , , , ,bina = False
, , , , , ,else:
, , , , , , , ,S = S + chr(n)
, , , , , ,continue
, , , ,if chr(n) == '<': # начало тега
, , , , , ,
, , , , , ,flag = True
, , , , , ,Tag = ''
, , , ,else:
, , , , , ,if flag:
, , , , , , , ,if chr(n) == '>':
, , , , , , , , , ,
, , , , , , , , , ,flag = False
, , , , , , , , , ,if Tag.find('binary')> -1:
, , , , , , , , , , # print(Tag)
, , , , , , , , , , , ,bina = True
, , , , , , , , , , , ,S = ''
, , , , , , , , , , , ,name_Pic = getAttribute(Tag)
, , , , , , , , , , , ,
, , , , , , , , , , , ,
, , , , , , , ,else:
, , , , , , , , , ,Tag = Tag + chr(n)
, , , , , ,
, , , , , , , ,
parseBinaryContent('Ho.fb2')
del_pic.py
#!/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: