, ,if (Books[i-1].find('|Y|')>0) or (Books[i-1].find('|Z|')>0):
# , , , ,print(Books[i-1])
, , , ,Books.pop(i-1) # ранее удаленных книг
for i in Books:
, ,m = i.split('|')
, ,L.append(m[4].strip()+'|-'+my_name(m[0])+'\n')
for i in range(len(L), 0, -1):
, ,FindInTree(L[i-1].strip(), i-1)
, ,
for i in range(len(tree), 0, -1):
, ,s = tree[i-1].strip()
, ,if (s[-1] != 'p') and (s[-1] != '2'):
# , , , ,print(tree[i-1])
, , , ,tree.pop(i-1)
, ,
SaveList('net_v_base.txt',tree) , ,
SaveList('dead_B.txt',Books)
, ,
print( 'Done!')
dubl_auto.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
# 19 Avg
# сортировка книг по авторам
#--------------------------------------------------
Books = []
tree = []
LOut = [] # выходной список
#--------------------------------------- , ,
def LoadFile(fn, Li): # Загрузка из файла в список
, ,if os.path.isfile(fn):
, , , ,f = open(fn,'r')
, , , ,for i in f:
, , , , , ,Li.append(i)
, , , ,f.close()
, ,else:
, , , ,print('I need '+ fn)
, , , ,exit()
#--------------------------------------- , ,
def LoadFileM(fn, Li): # Загрузка из файла в список (модифицированно)
, ,if os.path.isfile(fn):
, , , ,f = open(fn,'r')
, , , ,for i in f:
, , , , , ,mmm = i.split('|')
, , , , , ,# автор[1]; название[0]; размер файла[4]
, , , , , ,Bo = mmm[1]+'|'+mmm[0]+'|'+mmm[4]
, , , , , ,if mmm[1] != 'NoName.':
, , , , , , , ,Li.append(Bo)
, , , ,f.close()
, ,else:
, , , ,print('I need '+ fn)
, , , ,exit()
#--------------------------------------------------
def SaveList(fn, Li): # запись списка в файл
, , , ,f = open(fn, 'w')
, , , ,for i in Li:
, , , , , ,f.write(i)
, , , ,f.close()
#**********************************************************************
def my_sort(L2): # Поиск авторов
, ,L3 = [] # Промежуточное хранилище
, ,flag = False
, ,n = -1
, ,OldAu = ''
, ,OldSt = ''
, ,Cap = ''
, ,for i in L2:
, , , ,m = i.split('|')
, , , ,n += 1
, , , ,Cap = m[0] # автор
, , , ,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: