Читаем Приложение к «Python в библиотеке» полностью

, , , , , , 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.')

<p>12</p><p>dead_books.py</p>

#!/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!')

<p>dead_books2.2.py</p>

#!/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): # удаление из списка

Перейти на страницу:

Похожие книги

1С: Бухгалтерия 8 с нуля
1С: Бухгалтерия 8 с нуля

Книга содержит полное описание приемов и методов работы с программой 1С:Бухгалтерия 8. Рассматривается автоматизация всех основных участков бухгалтерии: учет наличных и безналичных денежных средств, основных средств и НМА, прихода и расхода товарно-материальных ценностей, зарплаты, производства. Описано, как вводить исходные данные, заполнять справочники и каталоги, работать с первичными документами, проводить их по учету, формировать разнообразные отчеты, выводить данные на печать, настраивать программу и использовать ее сервисные функции. Каждый урок содержит подробное описание рассматриваемой темы с детальным разбором и иллюстрированием всех этапов.Для широкого круга пользователей.

Алексей Анатольевич Гладкий

Программирование, программы, базы данных / Программное обеспечение / Бухучет и аудит / Финансы и бизнес / Книги по IT / Словари и Энциклопедии
1С: Управление торговлей 8.2
1С: Управление торговлей 8.2

Современные торговые предприятия предлагают своим клиентам широчайший ассортимент товаров, который исчисляется тысячами и десятками тысяч наименований. Причем многие позиции могут реализовываться на разных условиях: предоплата, отсрочка платежи, скидка, наценка, объем партии, и т.д. Клиенты зачастую делятся на категории – VIP-клиент, обычный клиент, постоянный клиент, мелкооптовый клиент, и т.д. Товарные позиции могут комплектоваться и разукомплектовываться, многие товары подлежат обязательной сертификации и гигиеническим исследованиям, некондиционные позиции необходимо списывать, на складах периодически должна проводиться инвентаризация, каждая компания должна иметь свою маркетинговую политику и т.д., вообщем – современное торговое предприятие представляет живой организм, находящийся в постоянном движении.Очевидно, что вся эта кипучая деятельность требует автоматизации. Для решения этой задачи существуют специальные программные средства, и в этой книге мы познакомим вам с самым популярным продуктом, предназначенным для автоматизации деятельности торгового предприятия – «1С Управление торговлей», которое реализовано на новейшей технологической платформе версии 1С 8.2.

Алексей Анатольевич Гладкий

Финансы / Программирование, программы, базы данных