#!/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): # запись списка в файл
, , , ,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=[]
#********************************************************
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!')