parseTags
Tilbage
Hent filen
Licens GPL
Hej har brug for lidt hjælp her hvordan laver jeg et script som henter texten som står mellem #test# og skal kunne udskrive teksten et andet sted altså gemmer den i en variable den skal blive ved med at køre indtil den ikke finder flere tags
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
#
"""
# Licence GPL
# se http://support.microsoft.com/kb/276494 der er beskrevet hvordan du
# opsætter din asp server til at bruge python
"""
txt = """#spam# Jeg har brug #spam# for lidt hjælp her hvordan laver jeg et script
som henter texten som står mellem ?ost?#ham# og?ost? skal ?kan?kunne?kan? udskrive
teksten #ham# et andet sted altså gemmer den i en variable
den skal blive ved med at køre #eggs# indtil #eggs# den ikke finder flere tags
"""
def parseTags(text=txt, tagChr="#", skriv=True ):
"""
Parser text og gemmer det som står mellem tags i en dictonary
under det navn som der står i tags.
Input:
text , den tekst som skal parses for tags.
tagChar, Det tegn som markerer start og slut på tags navnet.
skriv, angiver om det som ikke står i tags skal udskrives.
Return: De fundne tags med indhold som en dictionary. Se nedenfor,
Doctest.
>>> parseTags( skriv=True )
for lidt hjælp her hvordan laver jeg et script
som henter texten som står mellem ?ost? et andet sted altså gemmer den i en variable
den skal blive ved med at køre den ikke finder flere tags
{'eggs': ' indtil ', 'ham': ' og?ost? skal ?kan?kunne?kan? udskrive\\nteksten ', 'spam': ' Jeg har brug '}
>>> parseTags( tagChr="?", skriv=True )
#spam# Jeg har brug #spam# for lidt hjælp her hvordan laver jeg et script
som henter texten som står mellem skal udskrive
teksten #ham# et andet sted altså gemmer den i en variable
den skal blive ved med at køre #eggs# indtil #eggs# den ikke finder flere tags
{'ost': '#ham# og', 'kan': 'kunne'}
"""
tagName = ""
data = True
Variables = {}
i = 0
for Data in txt.split( tagChr ):
if i % 2 : # ulige
# ved ulige split vil Data være navnet i på tag
tagName = Data
else: # lige
# ved lige split vil Data være tekst
if data:
# hver anden gang det er lige er der tale
# om data som blot skal udskrives
if skriv and Data :
print Data,
else:
Variables[ tagName ] = Data
tagName = ""
data = not data
i += 1
return Variables
def _test():
import doctest
doctest.testmod()
if __name__ == "__main__":
_test()