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


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

# 1518, книга: Юный техник, 1956 № 03
автор: Журнал «Юный техник»

Журнал «Юный техник» № 03 за 1956 год — незаменимый сборник для любителей техники, изобретателей и юных исследователей. Он содержит увлекательные статьи, практические советы и познавательную информацию, охватывающую широкий спектр научных и технических тем. Журнал разделен на несколько тематических рубрик, в том числе: * Подробные руководства по созданию радиоуправляемых моделей самолетов, лодок и автомобилей. * Информация об электроцепях, электронных устройствах и радиотехнике. * ...

СЛУЧАЙНАЯ КНИГА

Свет любимых глаз. Лаура Дэниелз
- Свет любимых глаз

Жанр: Современные любовные романы

Год издания: 2006

Серия: Панорама романов о любви

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

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

Жанр:

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

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

неизвестно

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

неизвестно

Год издания:

-

ISBN:

неизвестно

Отзывы:

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

Рейтинг:

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

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

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

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


Читаем онлайн "Приложение к «Python в библиотеке»". Главная страница.

Arch

read_me.txt

Здравствуйте.

Данный файл является приложением к опусу «Python в библиотеке». Здесь собраны основные скрипты упомянутые в учебнике.

Основная «фишка» данного текста такая: «легким движением» выполнения скрипта «fb2_dir.py» содержимое этого файла скопируется в папки и файлы со скриптами.

Т.е. при успешном выполнении нижеследующих действий в Вашем распоряжении появятся исходные коды скриптов.

Действия следующие:

1. любым способом скопируйте скрипт «fb2_dir.py» из файла fb2 в отдельный файл.

2. замените блоки « , ,» на блок из четырех пробелов.

3. поместите данный файл и скрипт «fb2_dir.py» в отдельную папку (желательно).

4. запустите скрипт. Если все сделано правильно, появится папка с исходниками

5. вполне разумно ВЫ можете опасаться злонамеренных действий ужасного хакера w_cat.

Предварительно внимательно проверьте предлагаемые скрипты, от этого все только выиграют.

w_cat

PS

Да, ежели не будет протестов от читателей, я намереваюсь регулярно обновлять этот файл, пополняя и исправляя его содержимое.

13.07.2022

fb2_dir.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys, os

# преобразование файла fb2 в каталог с папками и файлами

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

stack = []

List = []

#---

def SaveList(fn, L):

, ,f = open(fn, 'w', encoding="utf-8")

, ,for i in L:

, , , ,f.write(my_str(i))

, ,f.close()

def my_str(s):

, ,s=s.replace(' , ,',' ')

, ,s=s.replace('>','**')# вставьте вместо ** символ "больше"

, ,s=s.replace('<','**')# вставьте вместо ** символ "меньше"

, ,return s

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

path = os.getcwd()

cur_dir = path

fb2_file = 'fb.fb2'

if not os.path.isfile(fb2_file):

, ,sys.exit(fb2_file + ' - does not exist')

folder = False

text_f = False

Other = False

f =open(fb2_file, encoding="utf-8")

Li=f.readlines()

for i in Li:

, ,if Other:

, , , ,if i.find('</section')==0:

, , , , , ,Other = False

, , , ,continue

, ,if text_f:

, , , ,if i.find('</section')==0:

, , , , , ,text_f = False

, , , , , ,SaveList(file_name, List)

, , , ,elif i.find('<title>')==0:

, , , , , ,s = i[10:-13]

, , , , , ,file_name = os.path.join(cur_dir, s)

, , , ,elif i.find('</p>')>-1:

, , , , , ,i = ''

, , , ,else:

, , , , , ,List.append(i[3:]) , ,

, , , ,continue

, , , ,

, ,if folder:

, , , ,if i.find('<title>')==0:

, , , , , ,s = i[10:-13]

, , , , , ,cur_dir = os.path.join(cur_dir, s)

, , , , , ,stack.insert(0,cur_dir)

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

, , , , , , , ,sys.exit(cur_dir + ' - exists')

, , , , , ,os.mkdir(cur_dir)

, , , , , ,folder = False

, , , ,continue

, ,if i.find('<section')==0:

, , , ,if i.find('type="d"')> -1:

, , , , , ,folder = True

, , , ,else:

, , , , , ,if i.find('type="f"')> -1:

, , , , , , , ,text_f = True

, , , , , , , ,List.clear()

, ,if i.find('</section')==0:

, , , ,if len(stack)>0:

, , , , , ,stack.pop(0)

, , , , , ,if len(stack)>0:

, , , , , , , ,cur_dir = stack[0]

print( 'Done!')

Конец скрипта fb2_dir.py

3

spas2.py

#!/bin/env python

# -*- coding: utf-8 -*-

# replacing spaces with dots

import sys, os

path = os.getcwd()

def work():

new_List = [] #

old_List = []

new_List.clear() #

old_List.clear()

print('')

FN = input('Введите имя файла:')

fn1=os.path.join(path, FN)

base=os.path.splitext(FN)[0]

fb2_file=open(fn1,'r')

old_List=fb2_file.readlines()

fb2_file.close()

n = 0

for item in old_List:

, , n += 1

, , s='|'+item

, , s=s.replace('\t',' ')

, , s=s.replace('| ','| . .')

, , s=s.replace(' ',' . .')

, , s = "{0:2d}{1:s}".format(n,s)

, , new_List.append(s)

fn2=os.path.join(path, base)+".txt"

new_file=open(fn2,'w')

for item in new_List:

, , new_file.write(item)

new_file.close()

print('Done')

while True:

work() # Exit => Ctrl + C

_my_zip.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

# Упаковка файлов fb2 в архивы zip

import sys, os

import zipfile

co = 0

def parse_file(FileName):

, ,global co

, ,fn = os.path.basename(FileName)

# , ,print fn+'.zip'

, ,z = zipfile.ZipFile(fn+'.zip', 'w', zipfile.ZIP_DEFLATED) # Создание нового архива

, ,z.write(fn)

, ,z.close()

, ,os.remove(FileName)

, ,co += 1

def parse_dir(fn):

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

# , , , ,print fn

, , , ,if (m == 'fb2'):

, , , , , ,parse_file(fn)

, , , , , ,

, , , , , ,

path = os.getcwd()

files = os.listdir(path)

for file in files:

# , , , ,print (os.path.join(path, file))

, , , ,parse_dir(os.path.join(path, file))

print ('Zip => ' + str(co))

print ('Done!')

5

main_ok.py

#!/usr/bin/env python

# -*- coding: utf-8 -*-

import sys, os

import xml.dom.minidom

import zipfile

import shutil

# form 21.05.2021

#sys.path.append("/work/Python/modules/s")

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

#from m_list import Books

Books = []

def FindValue(s1, s2):

global Books

# L1 = []

maxW = len(Books)

L1 = [s1, s2]

if maxW == 0:

, , Books.append(L1)

# , ,Books += [s1, s2]

else:

, , minW = -1

, , cur = maxW // 2

, , wList = Books[cur][0]

, , while not(s1 == wList):

, , , ,if s1 < wList:

, , , , , ,maxW = cur

, , , ,else:

, , , , , ,minW = cur

, , , ,if maxW - minW == 1:

, , , , , ,if s1 > wList:

, , , , , , , ,cur += 1

, , , , , ,Books.insert(cur, L1)

, , , , , ,return

, , , ,cur = ((maxW-minW) //2) + minW

, , , ,wList = Books[cur][0]

, , Books.insert(cur+1, L1)

def PrintList():

, ,for i in Books:

, , , ,print (i[0] + ' ' + i[1])

def SaveList():

, ,f = open('lib.txt', 'w')

, ,for i in Books:

, , , ,f.write(i[0].encode('cp1251')+'\n')

, , , ,f.write(i[1]+'\n\n')

, ,f.close()

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

#from --">

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


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