[Python-de] simpler macro expander

root root at cruciatuz.localdomain
Thu Jul 19 20:36:59 EDT 2001


ich habe einen preprocessor geschrieben der einfache textmacros
in ascii dateien expandiert und aus der eingabe datei eine ausgabe
datei erzeugt.

ich habe das problem das der text der in das outfile geschrieben wird
in etwa so aussieht:

'Das hier ist ein bissi Text.\012', 'Hier steckt auch ein macro drin.\012', 
'Stefan Antoni hei\337e ich, und mein macro, n\344mlich mein name, wurde 
expandiert.\012', 'ausserdem noch sasoft at gmx.de.\012']


aber es sollte EIGENTLICH SO AUSSEHEN:

Das hier ist ein bissi Text.
Hier steckt auch ein macro drin.
myName heiße ich, und mein macro, nämlich mein name, wurde expandiert.
ausserdem noch myMail.

(myName und myMain sind die macros)



hier der quelltext (sorry das ich nicht kürze, ich glaube es ist leichter für 
euch wenn ihr alles im zusammenhang sehen könnt)

import re, sys
from macros import * # imports the dict "macros" where you can put your own   
                                        # ones
 
#usage: processor <infile> <outfile>
#file: processor.py
 
class processor:
 
        def __init__(self):
                self.__version = 0.1
 
        def parse(self, fileToParse, fileToWrite):
                fr = open(fileToParse, 'r')
                fw = open(fileToWrite, 'wr')
                frdata = fr.readlines()
                fr.close()
                frdata = str(frdata)
 
                iterate = 0
                for x in macros.items():
                  frdata = frdata.replace(macros.keys()[iterate], 
macros.values()[iterate])
                  iterate += 1
 
 
                fw.writelines(frdata)
                fw.close()
 
if __name__ == '__main__':
        p = processor()
        p.parse(sys.argv[1], sys.argv[2])


so sieht meine macro-datei aus:

# file: macros.py
macros = {
          'myName' : 'Stefan Antoni',
          'myMail' : 'sasoft at gmx.de'
         }



More information about the Python-de mailing list