[erledigt] Karrigell Dateien anlegen

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

Hallo...

Ich wuerde gern Userdaten in Dateien speichern... aber irgendwie geht es nicht.

Hier das entsprechende Stueck Code:

Code: Alles auswählen

    try:
        datafile = file(datafilepath, "rb")
        userinfo.update(pickle.loads(datafile.read()))
        datafile.close()
    except:
        setuserinfo()
        datafile = file(datafilepath, "wb")
        datafile.write(pickle.dumps(userinfo))
und passend dazu... die Fehlermeldung:

Code: Alles auswählen

Script /index.ks/indexIOError: [Errno 2] No such file or directory: 'userfiles/pSy.dat'

Line 91    
datafile = file(datafilepath, "wb")
...aber ich mache doch extra "wb", damit er die Datei erstellt o.O
Zuletzt geändert von nkoehring am Montag 26. Februar 2007, 22:40, insgesamt 1-mal geändert.
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

nkoehring hat geschrieben:

Code: Alles auswählen

Script /index.ks/indexIOError: [Errno 2] No such file or directory: 'userfiles/pSy.dat'
Hi nkoehring!

Versuchs mal mit absoluten Pfaden:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import os
import pickle


def index():
    filename = os.path.join(
        os.path.dirname(os.path.abspath(__file__)),
        "userfiles",
        "filename.pickle"
    )
    try:
        datafile = file(filename, "rb")
        userinfo.update(pickle.load(datafile))
        datafile.close()
    except:
        setuserinfo()
        datafile = file(filename, "wb")
        datafile.write(pickle.dump(userinfo))
        datafile.close()
Ungetestet!!!

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

hey gerold...

ja danke fuer die schnelle antwort... aber ich bitte hiermit einfach mal alle, das hier zu ignorieren... wie lange es manchmal dauert um zu erkennen, dass da der ordnername einfach falsch sein koennte -.-

naja, danke trotzdem :D
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5555
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Oberhofen im Inntal (Tirol)
Kontaktdaten:

...aaahhhhhrrrrggg :?

__file__ funktioniert in *.ks-Dateien nicht.

Dann musst du dir im gleichen Ordner noch eine Datei erstellen, über die du zum Pfad kommst.

Jetzt nur so als Beispiel:

pfad.py:

Code: Alles auswählen

def get_path():
    return __file__
index.ks:

Code: Alles auswählen

#!/usr/bin/env python
# -*- coding: iso-8859-1 -*-

import os
import pfad

def index():
    filename = os.path.join(
        os.path.dirname(pfad.get_path()),
        "userfiles",
        "filename.pickle"
    )
    print filename
(getestet)

mfg
Gerold
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Benutzeravatar
nkoehring
User
Beiträge: 543
Registriert: Mittwoch 7. Februar 2007, 17:37
Wohnort: naehe Halle/Saale
Kontaktdaten:

danke danke ... aber es funktioniert ja alles so wie es soll :)

ehm... hab ich schonmal die debug-funktion von karrigell gelobt? ^^
[url=http://www.python-forum.de/post-86552.html]~ Wahnsinn ist auch nur eine andere Form der Intelligenz ~[/url]
hackerkey://v4sw6CYUShw5pr7Uck3ma3/4u7LNw2/3TXGm5l6+GSOarch/i2e6+t2b9GOen7g5RAPa2XsMr2
Antworten