, , , , , , my_rename(adr,ph,'.fb2.zip')
, ,elif (m[-1] == "fb2"):
, , , ,if flag and parse_fb2(adr):
, , , , , , countFiles += 1
, , , , , , my_rename(adr,ph,'.fb2') , , , , , ,
, , , ,
def parse_dir(ph):
, ,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:
#? , , , , , ,if os.path.getsize(i) > 0:
, , , , , , , ,parse_file(adr, ph)
#? , , , ,else:
#? , , , , , ,print("bad zip "+ i)
#----------------------------------------
path = os.getcwd()
, ,
#----------------------------------------
if os.path.isfile('NeBaza.txt'):
, ,f = open('NeBaza.txt','r')
, ,for i in f:
, , , , , ,Books.append(i)
, ,f.close()
parse_dir(path)
Books.sort()
SaveList('NeBaza.txt', Books, countFiles )
SaveError('Errror.txt', Errror)#
print( 'Done!')
print( 'Add '+ str(countFiles)+' files.')
12
dead_books.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): # запись списка в файл
, , , ,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!')
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): # удаление из списка