Pythonilla itsekin lähdin tätä miettimään, niin jostain syystä tämä seuraavaksi esittämäni koodi käy tosiaan kaikki nuo 15 html -tiedoston riviä läpi iteroituna tuossa silmukassa, jossa tuo louhiVirsi(x) -metodin kutsu on, mutta sitten lopputulosteessa päätteelle tulostuu "None" molempien <article> -tagien välissä olevan sisällön sijaan. Mitenkäs tämän laita?
Tässä nyt ensin tämä virret.html -tiedosto, jonka loin malliksi
<!DOCTYPE html>
<html>
<head><title>Virsi-kirja</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta charset="UTF-8"/>
</head>
<body>
<h1>Virret</h1>
<article>Virsi 1</aRticle>
<br>
<article>Virsi 2</aRticle>
</body>
</html>
Sitten virsiLouhi.py -tiedoston sisältö, jonka ohjelmoin:
import codecs
def louhiVirsi(x):
startTag = '<article>'
endTag = '</article>'
try:
alku = x.index(startTag)
loppu = x.index(endTag)
if (alku >0 and loppu > 0):
result = string[x[alku+1]:x[loppu-1]]
return result
except:
return False;
content = codecs.open("virret.html", "r", "utf-8").read().splitlines()
for x in range(len(content)):
temp = louhiVirsi(content[x].lower())
if (temp == False):
continue
else:
print (temp)
Ja lopuksi päätteen tuloste, kun ajaa py virsiLouhi.py -tuolla pythonin tulkilla.
None
None
Tuo ohjelmakoodi python-tulkilla ajettuna löytää nuo <article> -tagit, mutta jostain syystä tuo louhiVirsi(x) -metodi ei palauta tuota merkkijonoa, joka on noiden tagien välissä, vaan "None".
Jotain vinkkiä tästä tai tähän, mitä havaintoja tästä teette?