Съдържание
Нека си представим, че имаме редица готови документи, които сме решили да публикуваме в мрежата, в идеалния случай би било да ги преобразуваме в файлове за изтегляне и случаят ще бъде решен, но какво ще стане, ако не искаме те да бъдат за изтегляне и видими само на уеб страници, тогава трябва да създадем HTML документи за да направите това обаче, генерирането на необходимите етикети на ръка може да бъде главоболие.Като се има предвид ситуацията, идеалното е да се генерира програма, която да ни позволи да разрешим тези ограничения, за това имаме Python и благодарение на различните му инструменти за текстообработка можем да изградим решението, което ще ни позволи да се справим с тази задача.
Условия
За да разрешим проблем, първо трябва да установим условия които ни позволяват да знаем какво да правим, за този конкретен проект ще установим следното:
- Текстът не трябва да съдържа никакъв вид код или етикети.
- Трябва да можете да правите разлика между заглавия, параграфи и списъци, както и подчертан текст Y URL адреси.
- Тя трябва да бъде достатъчно здрава, за да се прилага към други езици за маркиране, освен HTML.
Инструменти за използване
За да постигнем предложените цели, трябва да определим кои инструменти трябва да използваме, в този случай можем да вземем стандартната библиотека за вход sys.stdin и за изхода ще е достатъчно печат, всичко останало работи с различни техники, които ще видим в примерите.
Старт
Тъй като знаем от какво се нуждаем и сме си поставили целите, трябва да имаме само един начин за измерване на нашия успех и за това е необходимо да направим документ, с който можем да генерираме нашите страници, в случая на този урок ние ще видите примерен документ на следното изображение, но всеки текст ще го прави, стига да има няколко абзаца:
Първа итерация
В първа итерация Трябва да разделим абзаците, в този случай ще ги наречем блокове, знаем, че тези блокове са разделени от един или повече празни редове, така че първата ни стъпка ще бъде да вземем тези редове като разделители.
Това, което ще направи следният код, е да събере редовете, които намери, докато не намери празен ред, след което ще продължи да преглежда файла, докато не намерим друга група текст.
Нека да видим как изглежда кодът:
def редове (файл): за ред във файл: доходност линия добив '\ n' def блокове (файл): блок = [] за ред в редове (файл): ако line.strip (): block.append (ред) elif block: yield '' .join (block) .strip () block = []
Горният код ще бъде записан във файл, наречен util.py, тогава трябва да включим различните тагове в получения HTML документ, за това ще генерираме друг файл със следния код:
от __future__ генератори на импортиране import sys, re от помощна програма import * print '…' title = 1 за блок в блокове (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', block) if title: print' 'title = 0 else: print'„печат на блоков печат“
"печат"
Както виждаме използваме метода блокове () и ние ви предаваме входния файл благодарение на библиотеката sys.stdin. Файлът трябва да бъде извикан simple_markup.py и го изпълняваме по следния начин:
$ python simple_markup.py test_output.html
Както виждаме, ние му предаваме първоначалния текстов файл и му предаваме името, което изходът трябва да съдържа и той трябва да изглежда така:
Завършвайки първата итерация, приключваме този урок, във втората част от него ще продължим да виждаме тези концепции по -задълбочено, както и втората итерация за тази програма.Хареса ли ви и помогнахте на този урок?Можете да възнаградите автора, като натиснете този бутон, за да му дадете положителна точка