, , , ,if (not flag) and (Cap == OldAu):
, , , , , ,flag = True
, , , , , ,L3.append(OldSt)
, , , ,if flag:
, , , , , ,if Cap == OldAu:
, , , , , , , ,L3.append(i)
, , , , , ,else:
, , , , , , , ,flag = False
, , , , , , , ,SaveInList(L3, OldAu)
, , , , , , , ,L3.clear()
, , , ,OldAu = Cap
, , , ,OldSt = i
, ,SaveInList(L3, OldAu) #
#+++++++++++++++++++++++++++++++++++++++++++++
replace_val = [('\\', '_'),('/', '_'),(':', '_'),('*', '_'),('?', '_'),('"', '_'),('<', '_'), ('>', '_'), ('|', '_')]
def replace(line, old_new_num):
, ,for vals in old_new_num:
, , , , , ,# распаковываем кортеж
, , , , , ,old, new = vals
, , , , , ,line = line.replace(old, new)
, ,return line
#---------------------------------------
def my_name(book_title):
, ,book_ti = book_title.strip() # исправление ввести в остальные скрипты
, ,book_ti = book_ti[:20] # обрезание названия книги
, ,book = replace(book_ti, replace_val) # удаление из названия запрещенных символов
, ,return book
#---------------------------------------
def ScanTree(s): # Поиск в дереве файлов по шаблону
, ,global tree
, ,c = -1
, ,for i in tree:
, , , ,c += 1
# , , , ,print(i)
# , , , ,print(s)
, , , ,if i.find(s) > -1:
, , , , , ,tree.pop(c)
, , , , , ,return i
, ,return ' '
#--------------------------------------------------
def SameFolder(L3): # проверка - нахождение книг в одной папке
, ,mmm = L3[0].split('|')
, ,s = mmm[0]
, ,for i in L3:
, , , ,mmm = i.split('|')
, , , ,if mmm[0] != s:
, , , , , ,return False
, ,return True
# ++++++++++++++++++++++++++++++++
def SaveInList(L3, au): # Перезапись из промежуточного в окончательный список дубликатов
, ,if len(L3) > 0:
, , , ,c = -1
, , , ,global LOut
, , , ,for k in L3: #
, , , , , ,c += 1
, , , , , ,mmm = k.split('|')
, , , , , ,nnn = mmm[2].strip()+'|-'+my_name(mmm[1])
, , , , , ,s = ScanTree(nnn)
, , , , , ,if s != ' ':
, , , , , , , , , ,hhh = s.split('|')
, , , , , , , , , ,L3[c] = hhh[0]+'|'+hhh[2]
, , , ,if SameFolder(L3):
, , , , , ,return
, , , ,L3.sort()
, , , ,LOut.append('-- '+au+' --\n')
, , , ,for i in L3:
, , , , , ,LOut.append(i)
#************************** main ******************************
LoadFileM('NeBaza3.txt', Books)
LoadFile('tree2.txt', tree)
Books.sort()
my_sort(Books)
SaveList('ccc.txt', LOut)
print( 'Done!')
tree.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
# 27 Jul 2021
#
#--------------------------------------------------
L = []
ln = 0
def parse_dir(ph):
, ,global L
, ,dirlist = os.listdir(ph)
, ,dirlist.sort()
, ,for i in dirlist:
, , , ,adr = os.path.join(ph, i)
, , , ,if os.path.isdir(adr):
, , , , , ,parse_dir(adr)
, , , ,else:
, , , , , ,adr = adr[ln:]
, , , , , ,L.append(adr+'\n')
#----------------------------------------
def SaveList(L):
, , , ,f = open('tree.txt', 'w')
, , , ,for i in L:
, , , , , ,f.write(i)
, , , ,f.close()
#----------------------------------------
path = os.getcwd()
ln = len(path) + 1
#----------------------------------------
parse_dir(path)
SaveList(L)
print( 'Done!')
tree2.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
# 3 avg
#
#--------------------------------------------------
L = []
ln = 0
def parse_dir(ph):
, ,global L
, ,dirlist = os.listdir(ph)
, ,dirlist.sort()
, ,for i in dirlist:
, , , ,adr = os.path.join(ph, i)
, , , ,if os.path.isdir(adr):
, , , , , ,parse_dir(adr)
, , , ,else:
, , , , , ,hh = ph[ln:]
, , , , , ,L.append(hh+'|'+ str(os.path.getsize(adr))+'|'+i+ '\n')
#----------------------------------------
def SaveList(L):
, , , ,f = open('tree2.txt', 'w')
, , , ,for i in L:
, , , , , ,f.write(i)
, , , ,f.close()
#----------------------------------------
path = os.getcwd()
ln = len(path) + 1
#----------------------------------------
parse_dir(path)
SaveList(L)
print( 'Done!')
16 Obedinenie
fb2_list.py
#!/usr/bin/env python
# -*- codning: utf-8 -*-
import sys, os
import zipfile
# Извлечение из архивов в папке
# Изготовление списка книг в текущей папке
#-----------------------------------------------
List = []
Count = 0
def parse_zip(fn): # обработка zip
, ,global path
, ,global Count
, ,z = zipfile.ZipFile(fn, 'r')
, ,z.extractall(path)
, ,Count += 1
def parse_file(fn): # обработка файла
, ,m = fn.split(".")[-1]
, ,if (m == "zip"): # если zip
, , , ,parse_zip(fn)
, , , ,
def parse_dir(fn): # сканирование папки
, ,dirlist = os.listdir(fn)
, ,dirlist.sort()
, ,for a in dirlist:
, , , ,if os.path.getsize(a) > 0:
, , , , , , , ,parse_file(a)
#-------------------------
def SaveList():
, ,f = open('list.txt', 'w', encoding="utf-8")
, ,for i in List:
, , , ,f.write(i)# 'cp1251' '\n'
, ,f.close()
def ScanDir(fn): # сканирование папки
, ,dirlist = os.listdir(fn)
, ,dirlist.sort()
, ,for a in dirlist:
, , , ,if not os.path.isdir(a):
, , , , , ,a = a.lower()
, , , , , ,m = a.split(".")[-1]
, , , , , ,if (m == "fb2"): # , , , , , , , , or (m == "zip")
, , , , , , , ,a = os.path.join(fn, a)
, , , , , , , ,List.append(a+'\n')
#--------------------------------------------------
path = os.getcwd()
parse_dir(path) # сканирование текущей папки
print('Файлов извлечено '+str(Count))
ScanDir(path)
SaveList()
print('ok??')
join_fb2m2.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
# 18.01.22
#--------------------------------------------------
def SaveList():
, ,f = open('lib.fb2', 'w', encoding="utf-8")
, ,for i in Books:
, , , ,f.write(i)# 'cp1251' '\n'
, ,f.close()
Books = []