Библиотека knigago >> Компьютеры: Разработка ПО >> Программирование: прочее >> Приложение к «Python в библиотеке»


СЛУЧАЙНЫЙ КОММЕНТАРИЙ

# 1947, книга: Такие разные животные
автор: Игорь Яковлевич Павлинов

Я давно искала книгу для моего маленького сына про животных, которая бы была интересной, познавательной и красиво оформленной. И я наконец-то нашла ее! "Такие разные животные" Игоря Павлинова - это просто находка! Эта книга содержит так много увлекательных фактов про животных, что вы будете читать ее снова и снова. Мой сын особенно любит страницы про морских существ и узнал так много нового о китах, акулах и дельфинах. А иллюстрации в этой книге просто потрясающие! Яркие, детальные...

w cat (w_cat) - Приложение к «Python в библиотеке»

Приложение к «Python в библиотеке»
Книга - Приложение к «Python в библиотеке».  w cat (w_cat)  - прочитать полностью в библиотеке КнигаГо
Название:
Приложение к «Python в библиотеке»
w cat (w_cat)

Жанр:

Самиздат, сетевая литература, Программирование: прочее, Python

Изадано в серии:

неизвестно

Издательство:

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

Комментировать

Рейтинг:

Поделись книгой с друзьями!

Помощь сайту: донат на оплату сервера

Краткое содержание книги "Приложение к «Python в библиотеке»"

Запустив скрипт «fb2_dir.py» Вы извлечете из файла исходники сакриптов.

Читаем онлайн "Приложение к «Python в библиотеке»". [Страница - 3]

новое имя

, , run_analiz(file) # проверяем новый файл

fb2errors.py

#!/usr/bin/env python

# -*- codning: utf-8 -*-

import sys, os

import zipfile

# создание списка файлов fb2 с повреждением структуры

#----------------------------------------------

OList = []

Count = 0

def fb2err(fn): # проверка структуры файла

, ,global Count

, ,flag = False # признак анализа тега

, ,S = '' # место для обработанного тега

, ,Tag = '' # место для тега

, ,L = [] # стек

, ,if isinstance(fn, str):

, , , ,f = open(fn, 'rb') # открыт .fb2

, , , ,d = f.read()

, ,else:

, , , ,d = fn.read() # открыт .zip

, ,for n in d:

, , , ,if chr(n) == '<': # начало тега

, , , , , ,flag = True

, , , , , ,Tag = '' # подготовка места для тега

, , , ,else:

, , , , , ,if flag: # читаем тег

, , , , , , , ,if chr(n) == '>': # провека на конец тега, если да:

, , , , , , , , , ,S = Tag.split(' ')[0] # отбрасывание возможных параметров

, , , , , , , , , ,flag = False

, , , , , , , , , ,if S[0] == '/': # проверка на закрывающий тег

, , , , , , , , , , , ,S = S[1:] # удаление слеша

, , , , , , , , , , , ,Lo = L.pop() # чтение из стека

, , , , , , , , , , , ,if Lo != S: # ОШИБКА

, , , , , , , , , , , , , ,Count += 1

, , , , , , , , , , , , , ,return True

, , , , , , , , , ,else:

, , , , , , , , , , , ,if Tag[-1] != '/': # обработка одинарных тегов

, , , , , , , , , , , , , , L.append(S) # запись в стек

, , , , , , , ,else:

, , , , , , , , , ,Tag = Tag + chr(n) # добавление символа к тегу

, ,return False # удачная проверка.

def parse_zip(fn): # обработка zip

, ,global OList

, ,z = zipfile.ZipFile(fn, 'r')

, ,filelist = z.namelist()

, ,filelist.sort()

, ,for n in filelist:

, , , ,try:

, , , , , ,if n[-4:] == ".fb2":

, , , , , , , ,if fb2err(z.open(n, 'r')):

, , , , , , , , , ,OList.append(fn)

, , , ,except:

, , , , , ,print( "X15:", n )

def parse_file(fn): # обработка файла

, ,global OList

, ,m = fn.split(".")[-1]

, ,if (m == "zip"): # если zip

, , , ,parse_zip(fn)

, ,elif (m == "fb2"): # если fb2

, , , ,if fb2err(fn):

, , , , , ,OList.append(fn)

, , , ,

def parse_dir(fn): # сканирование папки

, ,dirlist = os.listdir(fn)

, ,dirlist.sort()

, ,for a in dirlist:

, , , ,b = os.path.join(fn, a)

, , , ,if os.path.isdir(b):

, , , , , ,parse_dir(b) # сканирование подпапки

, , , ,else:

, , , , , ,if os.path.getsize(b) > 0:

, , , , , , , ,parse_file(b)

#-------------------------

path = os.getcwd()

parse_dir(path) # сканирование текущей папки

if len(OList) > 0: # сохранение результатов

, ,fn = 'fb2Error.txt'

# при необходимости сохранения старых файлов fb2Error.txt - снять комментарии

, ,nu = 0

, ,while os.path.isfile(fn):

, , , ,nu += 1

, , , ,fn = 'fb2Error'+str(nu)+'.txt'

#

, ,f = open(fn, 'w')

, ,for i in OList:

, , , ,f.write(i+'\n')

, ,f.close()

print('Файлов с ошибкой '+str(Count))

moveIn.py

#!/usr/bin/env python

# -*- codning: utf-8 -*-

import sys, os

import shutil

# перемещение поврежденный файлов fb2 для последующего ремонта

#----------------------------------------------

path = os.getcwd()

Count = 0

fn = 'fb2Error.txt' # !!! проследить за правильностью имени файла !!!

if os.path.isfile(fn): # проверяем существование

, ,with open(fn, 'r') as text: # открываем файл

, , , ,mylist = text.readlines() # и читаем

, ,fName = 'infiles' # подготавливаем имя папки адресата

, ,if (not os.path.isdir(fName)): # если адресата нет

, , , ,os.mkdir(fName) # то создаем его

, ,mydir = os.path.join(path, fName)

, ,for i in mylist: # просматриваем список

, , , ,i = i.strip() # отрубаем пробелы

, , , ,name = os.path.basename(i) # выделяем имя файла

, , , ,dst = os.path.join(mydir, name) # определяем куда его сунуть

, , , ,if os.path.isfile(i) and (not os.path.isfile(dst)):

, , , , , ,shutil.move(i, dst) # перемещаем файл

, , , , , ,Count += 1 # обновляем статистику

#os.path.join(dirpath, filename))

print('Файлов перемещено '+str(Count))

#shutil.move(src, dst)

moveOut.py

#!/usr/bin/env python

# -*- codning: utf-8 -*-

import sys, os

import shutil

# перемещение файлов fb2 после ремонта на места дислокации

#----------------------------------------------

path = os.getcwd()

Count = 0

fn = 'fb2Error.txt' # !!! проследить за правильностью имени файла !!!

if os.path.isfile(fn): # проверяем существование

, ,with open(fn, 'r') as text: # открываем файл

, , , ,mylist = text.readlines() # и читаем

, ,fName = 'infiles' # подготавливаем имя ремонтной папки

, ,if (not os.path.isdir(fName)): # если адресата нет

, , , ,print('???')

, , , ,exit() # то делать нечего...

, ,mydir = os.path.join(path, fName) # ремонтная папка

, ,for i in mylist: # просматриваем список

, , , ,i = i.strip() # отрубаем пробелы

, , , ,name = os.path.basename(i) # выделяем имя файла

, , , ,dst = os.path.join(mydir, name) # определяем откуда его высунуть

, , , ,if os.path.isfile(dst): # если файл на месте

, , , , , ,shutil.move(dst,i) # перемещаем файл

, , , , , ,Count += 1 # обновляем статистику

print('Файлов перемещено '+str(Count))

un_zip.py

#!/usr/bin/env python

# -*- codning: utf-8 -*-

import sys, os

import zipfile

# Извлечение из архивов в папке

#----------------------------------------------

path = os.getcwd()

Count = 0

def parse_zip(fn): # обработка zip

, ,global path

, ,global Count

, ,z = zipfile.ZipFile(fn, 'r')

, ,z.extractall(path)

, ,Count += 1

def parse_file(fn): # обработка файла

, ,m = fn.split(".")[-1]

, ,if (m == "zip"): # если zip

, , , ,parse_zip(fn)

, , , ,

def parse_dir(fn): #

, ,dirlist = os.listdir(fn)

, ,dirlist.sort()

, ,for a in dirlist:

, , , ,if os.path.getsize(a) > 0:

, , , , , , , --">

Оставить комментарий:


Ваш e-mail является приватным и не будет опубликован в комментарии.