К книге
Приложение к «Python в библиотеке»Arch. 16 Obedinenie. fb2_list.py
79%
Arch. 16 Obedinenie. fb2_list.py
27

#!/usr/bin/env python

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

import sys, os

import zipfile

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

# Изготовление списка книг в текущей папке

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

List = []

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:

, , , , , , , ,parse_file(a)

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

def SaveList():

, ,f = open('list.txt', 'w', encoding="utf-8")

, ,for i in List:

, , , ,f.write(i)# 'cp1251' '\n'

, ,f.close()

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

, ,dirlist = os.listdir(fn)

, ,dirlist.sort()

, ,for a in dirlist:

, , , ,if not os.path.isdir(a):

, , , , , ,a = a.lower()

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

, , , , , ,if (m == "fb2"): # , , , , , , , , or (m == "zip")

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

, , , , , , , ,List.append(a+'\n')

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

path = os.getcwd()

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

print('Файлов извлечено '+str(Count))

ScanDir(path)

SaveList()

print('ok??')

Предыдущая главаГлава 27 из 34Следующая глава