Beschädigte Pythondateien wiederherstellen?

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
Midna
User
Beiträge: 12
Registriert: Donnerstag 26. November 2009, 14:17
Kontaktdaten:

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
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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
the more they change the more they stay the same
Midna
User
Beiträge: 12
Registriert: Donnerstag 26. November 2009, 14:17
Kontaktdaten:

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ó
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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 :-)
Midna
User
Beiträge: 12
Registriert: Donnerstag 26. November 2009, 14:17
Kontaktdaten:

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 :roll:

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 :(
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

Im forum gibt es Code tags ;)

Code: Alles auswählen

[code=py]
[/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
the more they change the more they stay the same
Midna
User
Beiträge: 12
Registriert: Donnerstag 26. November 2009, 14:17
Kontaktdaten:

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 :oops: 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 ._.
ms4py
User
Beiträge: 1178
Registriert: Montag 19. Januar 2009, 09:37

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 ;)
Benutzeravatar
gkuhl
User
Beiträge: 600
Registriert: Dienstag 25. November 2008, 18:03
Wohnort: Hong Kong

Besitzt ihr noch den Bytecode (.pyc)? Der müsste sich ja, wenn er unbeschadet ist, zurückübersetzen lassen.
Dav1d
User
Beiträge: 1437
Registriert: Donnerstag 30. Juli 2009, 12:03
Kontaktdaten:

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
the more they change the more they stay the same
Benutzeravatar
mkesper
User
Beiträge: 919
Registriert: Montag 20. November 2006, 15:48
Wohnort: formerly known as mkallas
Kontaktdaten:

Neu programmieren geht schneller als alle Versuche, da noch etwas zu retten.
Benutzeravatar
/me
User
Beiträge: 3555
Registriert: Donnerstag 25. Juni 2009, 14:40
Wohnort: Bonn

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.
Benutzeravatar
Hyperion
Moderator
Beiträge: 7478
Registriert: Freitag 4. August 2006, 14:56
Wohnort: Hamburg
Kontaktdaten:

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:

Code: Alles auswählen

def set_playername(playername):
    ...
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 :-)
Antworten