Python - HTML ģenerators, 1. daļa

Satura rādītājs
Iedomāsimies, ka mums ir vairāki gatavi dokumenti, kurus esam nolēmuši publicēt tīmeklī, ideāli būtu tos pārvērst lejupielādējamos failos un lieta tiktu atrisināta, bet ko darīt, ja mēs nevēlamies, lai tie būtu lejupielādējamas un redzamas tikai tīmekļa lapās, tad mums vajadzētu izveidot HTML dokumenti tomēr, lai to izdarītu, nepieciešamo etiķešu ģenerēšana ar rokām var sagādāt galvassāpes.
Ņemot vērā situāciju, ideāls ir izveidot programmu, kas ļauj mums atrisināt šos ierobežojumus Python un, pateicoties dažādiem teksta apstrādes rīkiem, mēs varam izveidot risinājumu, kas ļaus mums veikt šo uzdevumu.
Noteikumi
Lai atrisinātu problēmu, mums vispirms ir jānosaka noteikumiem kas ļauj mums zināt, ko darīt, šim konkrētajam projektam mēs noteiksim sekojošo:
  • Nevajadzētu prasīt, lai tekstā būtu jebkāda veida kods vai etiķetes.
  • Jums jāspēj atšķirt virsraksti, rindkopas un saraksti, kā arī izcelts teksts Y URL.
  • Tam jābūt pietiekami izturīgam, lai to varētu izmantot citās iezīmēšanas valodās, nevis HTML.
Kā redzam, tie ir plaši, bet ne neiespējami nosacījumi, tomēr pirmajā īstenošanā varbūt ne visi tiks sasniegti, jo šim nolūkam ir jāizveido vairāki prototipi.
Izmantojamie rīki
Lai sasniegtu izvirzītos mērķus, mums ir jānosaka, kuri rīki mums jāizmanto, šajā gadījumā mēs varam izmantot standarta ievades bibliotēku sys.stdin un izejai ar to pietiks drukāt, viss pārējais darbojas ar dažādām metodēm, kuras mēs redzēsim piemēros.
Sākt
Tā kā mēs zinām, kas mums vajadzīgs, un esam nosprauduši savus mērķus, mums ir jābūt tikai vienam veidam, kā novērtēt mūsu panākumus, un tādēļ mums ir jāizveido dokuments, ar kura palīdzību mēs varam izveidot savas lapas. redzēs dokumenta paraugu šādā attēlā, tomēr jebkurš teksts būs derīgs, ja tajā būs vairākas rindkopas:

Pirmā atkārtošana
Iekš pirmā atkārtošana Mums ir jāsadala rindkopas, šajā gadījumā mēs tās sauksim par blokiem, mēs zinām, ka šos blokus atdala viena vai vairākas tukšas rindas, tāpēc mūsu pirmais solis būs ņemt šīs rindas kā atdalītājus.
Tālāk norādītais kods apkopos atrastās rindas, līdz atradīs tukšu rindu, pēc tam tas turpinās cauri failam, līdz atradīsim citu teksta grupu.
Apskatīsim, kā izskatās kods:
 def rindas (fails): rindai failā: ienesīguma rindas ienesīgums '\ n' def bloki (fails): bloks = [] rindai rindās (fails): ja line.strip (): block.append (line) elif bloks: raža ''. pievienoties (bloks) .strip () bloks = [] 

Iepriekš minētais kods tiks saglabāts failā ar nosaukumu util.py, tad mums ir jāiekļauj dažādi tagi mūsu iegūtajā HTML dokumentā, tāpēc mēs ģenerēsim citu failu ar šādu kodu:
 no __future__ importa ģeneratori importē sistēmu, re no util import * print '…' title = 1 blokam blokos (sys.stdin): block = re.sub (r '\ * (. +?) \ *', r '\1', bloks) if title: print' 'title = 0 else: print'

"drukas bloka druka"

"drukāt"

Kā redzam, mēs izmantojam šo metodi bloki () un mēs nododam ievades failu jums, pateicoties bibliotēkai sys.stdin. Failu vajadzētu izsaukt simple_markup.py un mēs to izpildām šādā veidā:
$ python simple_markup.py test_output.html

Kā redzam, mēs nododam tam sākotnējo teksta failu un nododam tam nosaukumu, kas jāietver izvadam, un tam vajadzētu izskatīties šādi:

Pabeidzot pirmo atkārtojumu, mēs beidzam šo apmācību, tās otrajā daļā mēs turpināsim redzēt šos jēdzienus dziļāk, kā arī šīs programmas otro atkārtojumu.Vai jums patika šī apmācība un palīdzējāt tai?Jūs varat apbalvot autoru, nospiežot šo pogu, lai sniegtu viņam pozitīvu punktu

Jums palīdzēs attīstību vietā, daloties lapu ar draugiem

wave wave wave wave wave