Daten, in eine *.txt Datei schreiben

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
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

Grüezi Wohl
Ich bin noch anfänger in Python, also verzeiht mir wen der Code nicht ganz Regelkonform ist. Probiere aber stehts die regeln einzuhalten die mir bekannt sind "sofern ich Sie auch richtig verstehe" ;)
Ich will ein kleines Programm schreiben das login daten in eine *.txt datei schreibt. "später noch verschlüsselt" aber für den anfang muss es auch ohne klappen. "Es ist, Python 2.6.6"

Code: Alles auswählen

# -*- coding: utf-8 -*-
class logsave(object):
    def __init__(self, login, passwd):
        self.login = login
        self.passwd = passwd

    def abfrage(self):   #funktion, um die login-daten aufzunehmen.
        print "*"*50
        print "**", " logindaten in dateien speichern.    ","**"
        print "*"*50
        self.login = raw_input("Gewünschter Name ? ")
        self.passwd = raw_input("Gewünschtes Passwort? ")
        schreiben()
    
    def schreiben(self):   #funktion, die login daten in die *.txt schreiben.
        df = open("passwds.txt", "r+")
	df.write(self.login, self.passwd)
        df.close()

    abfrage()
wen ich das jetzt ausführe, kriege ich immer:
Traceback (most recent call last):
File "fgh.py", line 11, in <module>
class logsave(object):
File "fgh.py", line 29, in logsave
abfrage()
TypeError: abfrage() takes exactly 1 argument (0 given)
>Exit code: 1

Da hab ich noch ein problem mit, heisst es das ich bei "abfrage() in line 29" noch etwas mitgeben muss ? Sorry, aber ich komm seit gestern Abend einfach nicht auf den Trichter.
Hab auch tutorials durchstöbert, aber ich glaube ich verstehe da was falsch evtl.

Ich bin sehr dankbar für Hilfe / Tipps und Vorschläge.
Ich möchte mich auch gleich entschuldigen fals es, wirklich ein zu banales problem ist oder der Thread im Falschen Forum "abteil" ist :)

Freundlichst Grüsse ich Euch
Andi
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
Benutzeravatar
Sr4l
User
Beiträge: 1091
Registriert: Donnerstag 28. Dezember 2006, 20:02
Wohnort: Kassel
Kontaktdaten:

auf `login`und `passwd`greifst du über self zu. Warum machst du das nicht bei abfrage und schreiben genau so?

Abfrage in der letzen Zeile hat wirklich eine Einrückung? das ist quatsch schreib es z.b am ende in `__init__`. als self.abfrage()

Seit Python 2.6 gibt es `with´ http://wiki.python-forum.de/Tutorial/with das kannst du für dein Funktion schreiben gebrauchen.

PS: Hast du vorher Java gelernt? Man muss kein Klassen verwenden wenn man sie nicht braucht. ;-)
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

hehe nene java nie gelernt, aber ich habs mir gedacht das ich keine klasse brauche :) "wusst ichs doch" :P danke werde mich jetzt gleich nochmals dran setzten.

und ja ich musste es einrücken. habe ich es am rand gemacht, kamm die fehlermeldung das abfrage() gar nicht definiert ist.
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

ich hab es jetzt nur mal zum testen. das mit with werd ich auch noch ergänzen.
doch möchte ich es jetzt einfach mal zum laufen bekommen.

Code: Alles auswählen

class logsave(object):
    def __init__(self, login, passwd):
        self.login = login
        self.passwd = passwd
	self.abfrage()

    def abfrage(self):   #funktion, um die login-daten aufzunehmen.
        print "*"*50
        print "**", " logindaten in dateien speichern.    ","**"
        print "*"*50
        self.login = raw_input("Gewünschter Name ? ")
        self.passwd = raw_input("Gewünschtes Passwort? ")
        self.schreiben()
    
    def schreiben(self): #funktion, die login daten in die datei schreiben.
        df = open("passwds.txt", "r+")
	df.write(self.login, self.passwd)
        df.close()
wen ich es jetzt ausführen will kommt:
>python -u "fgh.py"
>Exit code: 0
schnall ich jetzt auch nicht.
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

Woher kommt die "Exit code" Ausgabe? Zeig doch bitte den echten Code.
Fuer den fall, dass es doch der echte ist: Damit sich was tut, solltest du ein Exemplar von `logsave` erstellen.

Warum laesst du eigentlich `login` und `passwd` uebergeben, nur um es dann gleich mit einer Abfrage durch Eingaben zu ersetzen?
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

also die exit code ausgabe kommt dann:
ich schreibe im Scite und wen ich speichere und es ausführe, kommt diese fehlermeldung im scite.
Also irgendwie verstehe ich noch was nicht. ich hab keinen schimmer was du meinst mit "Exemplar von logsave" machen. :oops:

hmm habs nochmals geschrieben aber anderst und noch ohne with.

aber das funktioniert auch nicht:

Code: Alles auswählen

# -*- coding: utf-8 -*-

def abfrage(self, login, passwd):
	self.login = login
	self.passwd = passwd
	print "Hier Kannst du Dir einen Usernamen "
	print "und passwort erstellen !\n"
	self.login = raw_input("Gewünschter Username ? ")
	self.passwd = raw_input("Gewünschtes Passwort ? ")
	self.schreiben()
	
def schreiben(self):
	f = open("passwds.txt", "r+")
	f.write(self.login, self.passwd)
	f.close()
	
abfrage()		
man hab ich grad ein knüppel im kopf, "knüppel nicht von besoffen sondern, ich hab das gefühl ich kapier gar nichts mehr"
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
smodo
User
Beiträge: 49
Registriert: Dienstag 18. August 2009, 23:45

hmm ok, beim IDLE kommt das

http://s5.directupload.net/file/d/2406/obj67cz2_png.htm

gut ich hab alles repariert. wenb ich mit dem IDLE des prog starte, geht die shell auf aber es kommt nichts.
probier ich es mit dem Scite auszuführen kommt wieder:
>python -u "fgh.py"
>Exit code: 0
Zuletzt geändert von smodo am Sonntag 16. Januar 2011, 13:00, insgesamt 1-mal geändert.
Der Zynismus ist meine Rüstung, der Sarkasmus mein Schwert und die Ironie mein Schild.
.robert
User
Beiträge: 274
Registriert: Mittwoch 25. April 2007, 17:59

Wenn das wirklich dein Code ist, und du dich wunderst, warum das nicht funktioniert, würde ich dir fast raten, das Tutorial (noch) mal durch zu gehen. Danach solltest du klarer sehen.

Gruß,
r.
Benutzeravatar
cofi
Python-Forum Veteran
Beiträge: 4432
Registriert: Sonntag 30. März 2008, 04:16
Wohnort: RGFybXN0YWR0

smodo hat geschrieben:man hab ich grad ein knüppel im kopf, "knüppel nicht von besoffen sondern, ich hab das gefühl ich kapier gar nichts mehr"
Dann solltest du nochmal von 0 anfangen. Wie .robert schon hat durchblicken lassen: In fast jeder Zeile ist ein Fehler (vorrausgesetzt das steht nicht mehr in der Klasse).
Und du solltest dich wirklich ernsthaft mit Funktionen und deren Argumenten auseinandersetzen: Warum soll man `abfrage` den Login und das Password uebergeben, wenn die Funktion doch gerade die erfragen soll? Und warum wird `schreiben` nichts uebergeben, wenn es doch Daten schreiben soll?
Antworten