Seite 1 von 1
Beschädigte Pythondateien wiederherstellen?
Verfasst: Donnerstag 26. November 2009, 14:24
von Midna
Hallo erstmal
Na, bevor ich jetzt groß rumrede, komm ich am besten direkt zum Problem. Ich wollte fragen, wie man schon lesen kann, ob man defekte Dateien wiederherstellen kann. Momentan machen wir in der Schule ein Programmierprojekt mit Python und wir sollen Spiele programmieren. Wir haben auch schon angefangen, aber irgendwie ging nun die Datei kaputt. Die Datei befindet sich auf einem USB Stick und lässt sich auf keinem PC mehr öffnen, sondern es kommen so etwa 10 Zeilen, dann kommt eine riesige Fehlermeldung und dann stürzt Python ab. Kann mir damit irgendjemand helfen? Wäre echt supernett.
Lg Lisa
Verfasst: Donnerstag 26. November 2009, 14:31
von Dav1d
Wie wäre es mit angaben zum Betriebssystem (Schule, Daheim), zur Fehlermeldung, zum Code?
Mir ist nicht bekannt wie man sowas machen könnte, wenn doch bist du hieer im falschen Forum, wir können dir aber bei der Fehlermeldung helfen
Verfasst: Donnerstag 26. November 2009, 14:41
von Midna
Also Betriebssystem hier ist Windows XP, in der Schule Linux. Leider ist die Fehlermeldung recht schnell, man kann garnichts lesen. Ich kann aber das, was nun im Quelltext steht, hierher kopieren
def lisalaufen(event):
"""Lässt Lisa in der Anzeige laufen"""
lisafigur.shape = "5"
lisafigur.shape = "7", "lisalauflinks.gif"
lisafigur.shape = "5"
lisafigur.shape = "8", "lisalaufrechts.gif"
def anna(event):
"""Spielt das Spiel mit Anna als Figur"""
spielwelt.spielername = "anna"
def julia(event):
"""Spielt das Spiel mit Julia als Figur"""
spielwelt.spielername = "julia"
def lisa(event):
"""Spielt das Spió
Verfasst: Donnerstag 26. November 2009, 14:42
von Hyperion
Kann man die Datei denn mit einem Texteditor öffnen? Laut Deinen Angaben probiert ihr es ja sofort mit der Ausführung...
Gibt es denn wirklich keine Kopie auf einer Festplatte? Generell ist das natürlich ein schönes Beispiel für mangelnde Backup-Strategie - auch wenn Euch das im Moment nicht viel hilft, evtl. ist es ja eine lehrreiche Erfahrung

Verfasst: Donnerstag 26. November 2009, 14:46
von Midna
Ne, wir führen es garnicht aus. Wir öffnen es ja nur mit dem Editor und dann stürzt es ab. Aber recht hast du, es ist ziemlich lehrreich, auch wenn es vielleicht auch wann anders hätte passieren können
Edit: Und eine Kopie gibt es auch nicht, leider. Es gibt nur einen Verweis auf dem PC, dass die Datei mal benutzt wurde. Das kann man auch öffnen, also den Verweis, aber dann geschieht wieder das Selbe

Verfasst: Donnerstag 26. November 2009, 15:34
von Dav1d
Im forum gibt es Code tags
[/code]
Versuch mal die Datei umzubennen, .py => .txt
und Öffne mal CMD (Ausführen -> cmd (eingeben)) dann wechselst du ins Verzeichnis der Datei (über cd) und machst python mein_spiel.py jetzt sollte die Fehlermeldung nicht gleich wieder abhauen
Verfasst: Donnerstag 26. November 2009, 19:21
von Midna
Dav1d hat geschrieben:
und Öffne mal CMD (Ausführen -> cmd (eingeben)) dann wechselst du ins Verzeichnis der Datei (über cd) und machst python mein_spiel.py jetzt sollte die Fehlermeldung nicht gleich wieder abhauen
Ich hab keine Idee, was das sein soll

Ich kenn mich mit PCs eigentlich GARNICHT aus. habs nun unbenannt, das war nicht so schwer und Ausführen hab ich auch gefunden, aber was dann ._.
Verfasst: Donnerstag 26. November 2009, 20:16
von ms4py
Dav1d hat geschrieben:und Öffne mal CMD (Ausführen -> cmd (eingeben)) dann wechselst du ins Verzeichnis der Datei (über cd) und machst python mein_spiel.py jetzt sollte die Fehlermeldung nicht gleich wieder abhauen
Wenn der Quelltext so aussieht wie oben braucht man doch nicht rätseln, was da wohl für eine Fehlermeldung rauskommt

Verfasst: Donnerstag 26. November 2009, 21:25
von gkuhl
Besitzt ihr noch den Bytecode (.pyc)? Der müsste sich ja, wenn er unbeschadet ist, zurückübersetzen lassen.
Verfasst: Freitag 27. November 2009, 14:09
von Dav1d
ice2k3 hat geschrieben:Dav1d hat geschrieben:und Öffne mal CMD (Ausführen -> cmd (eingeben)) dann wechselst du ins Verzeichnis der Datei (über cd) und machst python mein_spiel.py jetzt sollte die Fehlermeldung nicht gleich wieder abhauen
Wenn der Quelltext so aussieht wie oben braucht man doch nicht rätseln, was da wohl für eine Fehlermeldung rauskommt

Ich dachte das liegt am Forum
Verfasst: Freitag 27. November 2009, 14:34
von mkesper
Neu programmieren geht schneller als alle Versuche, da noch etwas zu retten.
Verfasst: Freitag 27. November 2009, 14:39
von /me
Sagen wir es mal so. Nach den Merkwürdigkeiten im noch korrekt gelesenen Codeteil
Code: Alles auswählen
def lisalaufen(event):
"""Lässt Lisa in der Anzeige laufen"""
lisafigur.shape = "5"
lisafigur.shape = "7", "lisalauflinks.gif"
lisafigur.shape = "5"
lisafigur.shape = "8", "lisalaufrechts.gif"
kann das Spiel ja noch nicht so weit gewesen sein - es sei denn ihr hättet tatsächlich erst die Logik sichergestellt und euch dann erst an die Oberfläche gemacht.
Der Code könnte sich so noch einigermaßen aus den Entwurfsdokumenten und aus dem Gedächtnis reproduzieren lassen. Ich drücke mal die Daumen.
Verfasst: Freitag 27. November 2009, 14:41
von Hyperion
mkesper hat geschrieben:Neu programmieren geht schneller als alle Versuche, da noch etwas zu retten.
Zumal der noch heile Teil irgend wie nutzlos / unschön aussieht!
Beispiel:
Code: Alles auswählen
def anna(event):
"""Spielt das Spiel mit Anna als Figur"""
spielwelt.spielername = "anna"
def julia(event):
"""Spielt das Spiel mit Julia als Figur"""
spielwelt.spielername = "julia"
Was sollen diese Funktionen bringen? Der Funktionsame schon mal daneben, da ein Eigenname sicherlich keine Funktion ist. Ein Eigenname deutet idR. ja schon darauf hin, dass man diesen als variables Objekt modellieren sollte. Besser wäre:
Aber auch das ist mies! Wozu? Man kann den Namen doch auch direkt setzen, z.B. in der main-Funktion, sofern der Name als Parameter übergeben wird. Will man auf Konfiguration zunächst einmal verzichten, setzt man ihn sogar auf Modulebene.
Hinzu kommt noch, dass "spielwelt" anscheinend global verfügbar ist... das ist sicherlich auch nicht optimal!
Insofern bleibt da eine Menge zu verbessern
