, ,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[:20] # обрезание названия книги
, ,book = replace(book_ti, replace_val) # удаление из названия запрещенных символов
, ,return book
#--------------------------------------- , ,
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 FindInTree(s, i):
, ,global tree
, ,global Books
, ,n = -1
, ,for k in tree:
, , , ,n += 1
, , , ,if k.find(s) > -1:
, , , , , ,tree.pop(n)
, , , , , ,Books.pop(i)
, , , , , ,break
, ,
#---------------------------------------
L=[]
#********************************************************
path = os.getcwd()
LoadFile('NeBaza.txt', Books)
#LoadFile('tree2.txt', tree)
for i in range(len(Books), 0, -1): # удаление из списка
, ,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)
SaveList('net_v_base.txt',tree) , ,
SaveList('dead_B.txt',Books)
, ,
print( 'Done!')
dead_books2.2.py
#!/usr/bin/env python
# -*- coding: utf-8 -*-
import sys, os
import xml.dom.minidom
import zipfile
# 31 Jul
# поиск книг содержащихся в небазе, но не существующих физически
#--------------------------------------------------
Books = []
tree = []
Ltree = []
LOut = []
co = 0
#--------------------------------------------------
def SaveList(fn, Li): # запись списка в файл
, ,if len(Li) > 0:
, , , ,f = open(fn, 'w')
, , , ,for i in Li:
, , , , , ,f.write(i)
, , , ,f.close()
#---------------------------------------
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[:20] # обрезание названия книги
, ,book = replace(book_ti, replace_val) # удаление из названия запрещенных символов
, ,return book
#--------------------------------------- , ,
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 FindInTree(s, i):
, ,global tree
, ,global Books
, ,n = -1
, ,for k in tree:
, , , ,n += 1
, , , ,if k.find(s) > -1:
, , , , , ,tree.pop(n)
, , , , , ,Books.pop(i)
, , , , , ,break
#---------------------------------------
L = []
ln = 0
#---------------------------------------
def parse_dir(ph):
, ,global tree
, ,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:]
, , , , , ,tree.append(hh+'|'+ str(os.path.getsize(adr))+'|'+i+ '\n')
#********************************************************
path = os.getcwd()
ln = len(path) + 1
LoadFile('NeBaza.txt', Books)
parse_dir(path)
for i in range(len(Books), 0, -1): # удаление из списка
, ,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] # автор