Seite 1 von 1

Nicht Python daten in einer Quelldatei

Verfasst: Sonntag 26. Oktober 2008, 14:00
von captainchaos
Hallo!
Ist es möglich Daten, die nichts mit python zu tun haben an eine Quelldatei anzuhängen ohne das der Interpreter motzt?

Verfasst: Sonntag 26. Oktober 2008, 14:46
von lunar
Indirekt schon:

Code: Alles auswählen

print 'Hello World'

"""Some useless garbage in a triple quoted string"""
Ob das sinnvoll ist, sei mal dahingestellt.

Verfasst: Sonntag 26. Oktober 2008, 20:11
von birkenfeld
Ach ja: Wenn du auf Perls `__END__` anspielst, sowas gibt es in Python nicht. Es wird in jedem Fall das gesamte Modul geparst und kompiliert.

Verfasst: Sonntag 26. Oktober 2008, 22:15
von captainchaos
ok. danke.

Verfasst: Montag 27. Oktober 2008, 07:53
von BlackJack
@captainchaos: Was ist denn das Problem, welches Du lösen möchtest?

Verfasst: Montag 27. Oktober 2008, 14:10
von captainchaos
eine art installer. ich möchte komprimierte daten in meiner quelldatei einbetten, die ich später mit einem file-objekt auslese und in einen pfad dekomprimiere.

Verfasst: Montag 27. Oktober 2008, 15:09
von Leonidas
py2exe? NSIS?

Verfasst: Montag 27. Oktober 2008, 16:55
von name
In Kommentare unterbringen?

Verfasst: Montag 27. Oktober 2008, 18:16
von keppla
ich stimme leonidas zu, eine existierende Lösung ist sicher die bessere Idee.
Wenn man es denn trotzdem um keinen Preis will:

Code: Alles auswählen

#! /usr/bin/python

from __future__ import with_statement
          
def datafile(filename):
    with open(__file__, 'r') as fp:
        for line in fp:
            if line.startswith('""" DATA BEGIN'):
                break
        for line in fp:
            if line.startswith('DATA END """'):
                return
            yield line

if __name__ == '__main__':
    for line in datafile(__file__):
        print line

""" DATA BEGIN

dies ist der inhalt. darf keine triplequotes enthalten.
man koennte ihn geschickterweise direkt mit .encode('zip')
oder sowas behandlen.

DATA END """

Verfasst: Montag 27. Oktober 2008, 20:35
von Sr4l
Lass dich einfach von wxPythons img2py.py inspirieren.
Das Script sorgt bei wxPython dafür Bilder in Python Datei umzuwandeln.

/usr/lib/python2.5/site-packages/wx-2.8-gtl2-unicode/wx/tools ansonsten einfach nach img2py.py suchen.

* dazu durch dafür ersetzt :-/

Verfasst: Mittwoch 29. Oktober 2008, 11:38
von captainchaos
also die tripple-quotes sind zeilenübergreifend?
interessant...

Verfasst: Mittwoch 29. Oktober 2008, 12:02
von BlackJack
Oder man bringt die Daten ungepackt in Zeichenketten unter und packt das dann mit UPX.