Python - HTML oluşturucu, bölüm 1

İçindekiler
Web'de yayınlamaya karar verdiğimiz bir dizi hazır belgemiz olduğunu düşünelim, ideal olanı bunları indirilebilir dosyalara dönüştürmektir ve dava çözülür, ama ya bunların olmasını istemiyorsak? indirilebilir ve yalnızca web sayfalarında görünür, o zaman oluşturmalıyız HTML belgeleri ancak bunu yapmak için gerekli etiketleri elle oluşturmak baş ağrısına neden olabilir.
Durum göz önüne alındığında, ideal olan, bu sınırlamaları çözmemize izin veren bir program oluşturmaktır, bunun için elimizde piton ve farklı kelime işlem araçları sayesinde bu görevi yapmamızı sağlayacak çözümü oluşturabiliriz.
Şartlar
Bir sorunu çözmek için önce kurmalıyız şartlar ne yapacağımızı bilmemize izin veren bu özel proje için aşağıdakileri oluşturacağız:
  • Metnin herhangi bir tür içermesi gerekmemelidir. kod veya etiketler.
  • arasında ayrım yapabilmeniz gerekir. başlıklar, paragraflar ve listeler, birlikte vurgulanan metin Y URL'ler.
  • Diğer biçimlendirme dillerine uygulanabilecek kadar sağlam olmalıdır. HTML.
Gördüğümüz gibi, bunlar geniş ama imkansız koşullar değil, ancak ilk uygulamada, belki de hepsine ulaşılmayacak, çünkü bunun için birkaç prototip yapmamız gerekiyor.
Kullanılacak araçlar
Önerilen hedeflere ulaşmak için hangi araçları kullanmamız gerektiğini tanımlamalıyız, bu durumda standart girdi kitaplığını alabiliriz. sys.stdin ve çıkış için yeterli olacak Yazdır, diğer her şey örneklerde göreceğimiz farklı tekniklerle çalışıyor.
Başlangıç
Neye ihtiyacımız olduğunu bildiğimize ve hedeflerimizi belirlediğimize göre, başarımızı ölçmek için tek bir yolumuz var ve bunun için sayfalarımızı oluşturabileceğimiz bir belge yapmamız gerekiyor, bu eğitimde olduğu gibi. aşağıdaki resimde örnek bir belge göreceksiniz, ancak birkaç paragrafı olduğu sürece herhangi bir metin yeterli olacaktır:

İlk yineleme
İçinde ilk yineleme Paragrafları bölmemiz gerekiyor, bu durumda onlara blok diyeceğiz, bu blokların bir veya daha fazla boş satırla ayrıldığını biliyoruz, bu yüzden ilk adımımız bu satırları ayırıcı olarak almak olacaktır.
Aşağıdaki kodun yapacağı şey, bulduğu satırları boş bir satır bulana kadar toplamak, sonra biz başka bir metin grubu bulana kadar dosyada ilerlemeye devam edecek.
Kodun neye benzediğini görelim:
 def satırları (dosya): dosyadaki satır için: verim satırı verimi '\ n' def blokları (dosya): blok = [] satır içi satırlar için (dosya): if line.strip (): blok.append (satır) elif blok: verim '' .join (blok) .strip () blok = [] 

Yukarıdaki kod adlı bir dosyaya kaydedilecektir. util.py, sonra farklı etiketleri sonuçtaki HTML belgemize dahil etmeliyiz, bunun için aşağıdaki kodla başka bir dosya oluşturacağız:
 __future__'den import jeneratörler import sys, re from util import * print '…' başlık = 1 blok için bloklar (sys.stdin): blok = re.sub (r '\ * (. +?) \ *', r '\1', blok) if başlık: yazdır' 'başlık = 0 başka: yazdır'

'baskı bloğu baskı'

'Yazdır' '

Gördüğümüz gibi yöntemi kullanıyoruz bloklar () ve kütüphane sayesinde girdi dosyasını size iletiyoruz sys.stdin. Dosya çağrılmalıdır basit_markup.py ve aşağıdaki şekilde yürütürüz:
$ python simple_markup.py test_output.html

Gördüğümüz gibi, ilk metin dosyasını ona iletiyoruz ve çıktının içermesi gereken adı iletiyoruz ve şöyle görünmelidir:

İlk yinelemeyi bitirerek bu öğreticiyi bitiriyoruz, ikinci bölümünde bu kavramları ve bu programın ikinci yinelemesini daha derinlemesine görmeye devam edeceğiz.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.
wave wave wave wave wave