Seite 1 von 1

[gelöst] Problem beim bearbeiten eines Files

Verfasst: Mittwoch 6. September 2006, 13:20
von basti33
Hallo,

ich habe mir mal dieses kleine Skript gebastelt. Ich habe es nur aus dem Grund geschrieben, weil ich herausfinden wollte, wie es möglich ist, ein File zu bearbeiten, dessen Name vom Benutzer angegeben wird.

Code: Alles auswählen

#!/usr/bin/python
# -*- coding: utf-8 -*-

class datei:
    def __init__(self, name):
        self.name = name
    
    def appendtofile(self, text):
        f = file('/home/basti/Eigene_Dateien/'%s, "a") % self.name
        eingabe=raw_input('Was möchten Sie hineinschreiben? ')
        f.write(eingabe)
        f.close
        
    def readfile(self):
        f = open ('/home/basti/Eigene_Dateien' %s, "r") % self.name
        for inhalt in f.readlines():
            print inhalt
        f.close
        
print '''Wenn Sie ein neues File anlegen bzw. ein existierendes bearbeiten möchten, schreiben Sie bitte "w",
wenn sie ein bestehendes lesen möchten, schreiben Sie bitte "r".
Zum Beenden schreiben Sie "e".'''

weiter=True
while weiter:
    antwort = raw_input('Schreiben Sie bitte, was Sie tun möchten: ')
    if antwort == 'w':
        a = datei(raw_input('Welches File möchten Sie anlegen bzw. bearbeiten? '))
        a.appendtofile(raw_input('Was möchten Sie hineinschreiben? '))
    
    elif antwort == 'r':
        a = datei(raw_input('Welches File möchten Sie auslesen? '))
        a.readfile()
    
    elif antwort == 'e':
        weiter=False
    
    else:
        print 'Den gewünschten Modus gibt es nicht!'
    
Jetzt erhalte ich allerdings immer diese Fehlermeldung
unhandled NameError
"global name 's' is not defined"
Ich nehme mal, dass dieses Problem mit diesem "% Trick" (ich weiß nicht, wie man es offiziell nennt) zusammenhängt.

Kann mir jemand sagen, wie sich mein Vorhaben realisieren lässt?

Danke

Verfasst: Mittwoch 6. September 2006, 13:31
von mr.hide
diese Zeile

Code: Alles auswählen

f = file('/home/basti/Eigene_Dateien/'%s, "a") % self.name 
muss so lauten

Code: Alles auswählen

f = file('/home/basti/Eigene_Dateien/%s' %self.name  , "a") 

Verfasst: Mittwoch 6. September 2006, 13:40
von basti33
Danke!!