AW: [Python-de] simpler macro expander

Sven Tunnermann tunnermann at web.de
Fri Jul 27 10:07:29 EDT 2001


Moin!
Dieses Problem habe ich mit dem encode('latin-1') in den Griff gekriegt:

>>> print 'Das hier ist ein bissi Text.\012'.encode('latin-1')
Das hier ist ein bissi Text.

>>>

Viel Spaß beim Weitercoden!


-----Ursprüngliche Nachricht-----
Von: python-de-admin at starship.python.net
[mailto:python-de-admin at starship.python.net]Im Auftrag von root
Gesendet: Freitag, 20. Juli 2001 01:37
An: python-de at starship.python.net
Betreff: [Python-de] simpler macro expander


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'
         }
_______________________________________________
Python-de maillist  -  Python-de at starship.python.net
http://starship.python.net/mailman/listinfo/python-de




More information about the Python-de mailing list